home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-mospf-multicast-03.txt < prev    next >
Text File  |  1993-03-24  |  269KB  |  5,657 lines

  1.  
  2.  
  3.  
  4. Network Working Group                                             J. Moy
  5. Internet Draft                                             Proteon, Inc.
  6. Expiration date: September 1993                               March 1993
  7.  
  8.  
  9.                       Multicast Extensions to OSPF
  10.  
  11.  
  12.  
  13. Status of this Memo
  14.  
  15.     This document is an Internet  Draft.  Internet  Drafts  are  working
  16.     documents  of the Internet Engineering Task Force (IETF), its Areas,
  17.     and its Working Groups. Note that other groups may  also  distribute
  18.     working documents as Internet Drafts.
  19.  
  20.     Internet Drafts are draft documents  valid  for  a  maximum  of  six
  21.     months.  Internet  Drafts  may be updated, replaced, or obsoleted by
  22.     other documents at any time. It is not appropriate to  use  Internet
  23.     Drafts as reference material or to cite them other than as a ``work-
  24.     ing  draft''  or  ``work  in  progress.''  Please  check  the   1id-
  25.     abstracts.txt listing contained in the internet-drafts Shadow Direc-
  26.     tories     on     nic.ddn.mil,     nnsc.nsf.net,      nic.nordu.net,
  27.     ftp.nisc.sri.com,  or  munnari.oz.au  to learn the current status of
  28.     any Internet Draft.
  29.  
  30. Abstract
  31.  
  32.     This memo documents enhancements to the OSPF protocol  enabling  the
  33.     routing of IP multicast datagrams. In this proposal, an IP multicast
  34.     packet is routed based both on the packet's source and its multicast
  35.     destination (commonly referred to as source/destination routing). As
  36.     it is routed, the multicast packet follows a shortest path  to  each
  37.     multicast  destination. During packet forwarding, any commonality of
  38.     paths is exploited; when multiple hosts belong to a single multicast
  39.     group,  a multicast packet will be replicated only when the paths to
  40.     the separate hosts diverge.
  41.  
  42.     OSPF, a link-state routing protocol, provides a database  describing
  43.     the  Autonomous  System's topology. A new OSPF link state advertise-
  44.     ment is added describing the location of multicast  destinations.  A
  45.     multicast  packet's  path  is  then  calculated by building a pruned
  46.     shortest-path tree rooted at the packet's IP source. These trees are
  47.     built  on  demand, and the results of the calculation are cached for
  48.     use by subsequent packets.
  49.  
  50.     The multicast extensions are built on top of  OSPF  Version  2.  The
  51.     extensions  have  been  implemented  so  that  a  multicast  routing
  52.  
  53.  
  54.  
  55. [Moy]                                                           [Page 1]
  56.  
  57. Internet Draft        Multicast Extensions to OSPF            March 1993
  58.  
  59.  
  60.     capability can be introduced piecemeal into an OSPF Version 2  rout-
  61.     ing domain. Some of the OSPF Version 2 routers may run the multicast
  62.     extensions, while others may continue to be restricted to  the  for-
  63.     warding of regular IP traffic (unicasts).
  64.  
  65.     Please send comments to mospf@gated.cornell.edu.
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111. [Moy]                                                           [Page 2]
  112.  
  113. Internet Draft        Multicast Extensions to OSPF            March 1993
  114.  
  115.  
  116. Table of Contents
  117.  
  118.     1       Introduction ........................................... 5
  119.     1.1     Terminology ............................................ 6
  120.     1.2     Acknowledgments ........................................ 7
  121.     2       Multicast routing in MOSPF ............................. 7
  122.     2.1     Routing characteristics ................................ 7
  123.     2.2     Sample path of a multicast datagram .................... 9
  124.     2.3     MOSPF forwarding mechanism ............................ 11
  125.     2.3.1   IGMP interface: the local group database .............. 11
  126.     2.3.2   A datagram's shortest-path tree ....................... 14
  127.     2.3.3   Support for Non-broadcast networks .................... 16
  128.     2.3.4   Details concerning forwarding cache entries ........... 17
  129.     3       Inter-area multicasting ............................... 19
  130.     3.1     Extent of group-membership-LSAs ....................... 20
  131.     3.2     Building inter-area datagram shortest-path trees ...... 23
  132.     4       Inter-AS multicasting ................................. 28
  133.     4.1     Building inter-AS datagram shortest-path trees ........ 29
  134.     4.2     Stub area behavior .................................... 30
  135.     4.3     Inter-AS multicasting in a core Autonomous System ..... 31
  136.     5       Modelling internal group membership ................... 32
  137.     6       Additional capabilities ............................... 35
  138.     6.1     Mixing with non-multicast routers ..................... 35
  139.     6.2     TOS-based multicast ................................... 36
  140.     6.3     Assigning multiple IP networks to a physical network .. 37
  141.     6.4     Networks on Autonomous System boundaries .............. 37
  142.     6.5     Recommended system configuration ...................... 39
  143.     7       Basic implementation requirements ..................... 40
  144.     8       Protocol data structures .............................. 40
  145.     8.1     Additions to the OSPF area structure .................. 41
  146.     8.2     Additions to the OSPF interface structure ............. 42
  147.     8.3     Additions to the OSPF neighbor structure .............. 43
  148.     8.4     The local group database .............................. 43
  149.     8.5     The forwarding cache .................................. 44
  150.     9       Interaction with the IGMP protocol .................... 45
  151.     9.1     Sending IGMP Host Membership Queries .................. 46
  152.     9.2     Receiving IGMP Host Membership Reports ................ 46
  153.     9.3     Aging local group database entries .................... 47
  154.     9.4     Receiving IGMP Host Membership Queries ................ 47
  155.     10      Group-membership-LSAs ................................. 48
  156.     10.1    Constructing group-membership-LSAs .................... 49
  157.     10.2    Flooding group-membership-LSAs ........................ 51
  158.     11      Detailed description of multicast datagram forwarding . 52
  159.     11.1    Associating a MOSPF interface with a received datagram  55
  160.     11.2    Locating the source network ........................... 55
  161.     11.3    Forwarding locally originated multicasts .............. 56
  162.     12      Construction of forwarding cache entries .............. 57
  163.     12.1    The Vertex data structure ............................. 59
  164.  
  165.  
  166.  
  167. [Moy]                                                           [Page 3]
  168.  
  169. Internet Draft        Multicast Extensions to OSPF            March 1993
  170.  
  171.  
  172.     12.2    The SPF calculation ................................... 60
  173.     12.2.1  Candidate list Initialization: Case SourceIntraArea ... 65
  174.     12.2.2  Candidate list Initialization: Case SourceInterArea1 .. 65
  175.     12.2.3  Candidate list Initialization: Case SourceInterArea2 .. 66
  176.     12.2.4  Candidate list Initialization: Case SourceExternal .... 67
  177.     12.2.5  Candidate list Initialization: Case SourceStubExternal  69
  178.     12.2.6  Processing labelled vertices .......................... 70
  179.     12.2.7  Merging datagram shortest-path trees .................. 71
  180.     12.2.8  TOS considerations .................................... 72
  181.     12.2.9  Comparison to the unicast SPF calculation ............. 73
  182.     12.3    Adding local database entries to the forwarding cache   75
  183.     13      Maintaining the forwarding cache ...................... 75
  184.     14      Other additions to the OSPF specification ............. 76
  185.     14.1    The Designated Router ................................. 77
  186.     14.2    Sending Hello packets ................................. 77
  187.     14.3    The Neighbor state machine ............................ 77
  188.     14.4    Receiving Database Description packets ................ 78
  189.     14.5    Sending Database Description packets .................. 78
  190.     14.6    Originating Router-LSAs ............................... 78
  191.     14.7    Originating Network-LSAs .............................. 79
  192.     14.8    Originating Summary-link-LSAs ......................... 79
  193.     14.9    Originating AS external-link-LSAs ..................... 79
  194.     14.10   Next step in the flooding procedure ................... 80
  195.     14.11   Virtual links ......................................... 81
  196.     15      References ............................................ 82
  197.     A       Data Formats .......................................... 87
  198.     A.1     The Options field ..................................... 88
  199.     A.2     Router-LSA ............................................ 90
  200.     A.3     Group-membership-LSA .................................. 92
  201.     B       Configurable Constants ................................ 94
  202.     B.1     Global parameters ..................................... 94
  203.     B.2     Router interface parameters ........................... 94
  204.     C       Sample datagram shortest-path trees ................... 96
  205.     C.1     An intra-area tree .................................... 97
  206.     C.2     The effect of areas ................................... 99
  207.     C.3     The effect of virtual links .......................... 100
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223. [Moy]                                                           [Page 4]
  224.  
  225. Internet Draft        Multicast Extensions to OSPF            March 1993
  226.  
  227.  
  228. 1.  Introduction
  229.  
  230.     This memo documents enhancements to OSPF Version  2  to  support  IP
  231.     multicast  routing.  The enhancements have been added in a backward-
  232.     compatible fashion; routers running  the  multicast  additions  will
  233.     interoperate with non-multicast OSPF routers when forwarding regular
  234.     (unicast) IP data traffic. The protocol resulting from the  addition
  235.     of  the  multicast enhancements to OSPF is herein referred to as the
  236.     MOSPF protocol.
  237.  
  238.     IP multicasting is an extension of  LAN  multicasting  to  a  TCP/IP
  239.     internet.  Multicasting  support for TCP/IP hosts has been specified
  240.     in [RFC 1112]. In that document, multicast groups are represented by
  241.     IP  class D addresses. Individual TCP/IP hosts join (and leave) mul-
  242.     ticast groups through the Internet Group Management Protocol  (IGMP,
  243.     also specified in [RFC 1112]). A host need not be a member of a mul-
  244.     ticast group in order to send  datagrams  to  the  group.  Multicast
  245.     datagrams  are to be delivered to each member of the multicast group
  246.     with the same "best-effort" delivery accorded regular  (unicast)  IP
  247.     data traffic.
  248.  
  249.     MOSPF provides the ability to forward multicast datagrams  from  one
  250.     IP  network  to another (i.e., through internet routers). MOSPF for-
  251.     wards a multicast datagram on  the  basis  of  both  the  datagram's
  252.     source  and destination (this is sometimes called source/destination
  253.     routing). The OSPF link state database provides a complete  descrip-
  254.     tion  of  the  Autonomous System's topology. By adding a new type of
  255.     link state advertisement, the group-membership-LSA, the location  of
  256.     all  multicast group members is pinpointed in the database. The path
  257.     of a multicast  datagram  can  then  be  calculated  by  building  a
  258.     shortest-path tree rooted at the datagram's source. All branches not
  259.     containing multicast members are pruned from the tree. These  pruned
  260.     shortest-path  trees  are initially built when the first datagram is
  261.     received (i.e., on demand).  The results of the shortest path calcu-
  262.     lation  are  then  cached for use by subsequent datagrams having the
  263.     same source and destination.
  264.  
  265.     OSPF allows an Autonomous System to be split  into  areas.  However,
  266.     when  this  is  done  complete  knowledge of the Autonomous System's
  267.     topology is lost. When forwarding  multicasts  between  areas,  only
  268.     incomplete  shortest-path  trees can be built. This may lead to some
  269.     inefficiency in routing. An  analogous  situation  exists  when  the
  270.     source  of the multicast datagram lies in another Autonomous System.
  271.     In both cases (i.e., the source of the datagram belongs  to  a  dif-
  272.     ferent OSPF area, or to a different Autonomous system) the neighbor-
  273.     hood immediately surrounding the source is unknown. In  these  cases
  274.     the  source's  neighborhood  is  approximated  by  OSPF summary link
  275.     advertisements  or  by  OSPF   AS   external   link   advertisements
  276.  
  277.  
  278.  
  279. [Moy]                                                           [Page 5]
  280.  
  281. Internet Draft        Multicast Extensions to OSPF            March 1993
  282.  
  283.  
  284.     respectively.
  285.  
  286.     Routers running MOSPF can  be  intermixed  with  non-multicast  OSPF
  287.     routers. Both types of routers can interoperate when forwarding reg-
  288.     ular (unicast) IP data traffic. Obviously, the forwarding extent  of
  289.     IP  multicasts  is limited by the number of MOSPF routers present in
  290.     the Autonomous System (and their interconnection, if any). An  abil-
  291.     ity to "tunnel" multicast datagrams through non-multicast routers is
  292.     not provided. In MOSPF, just as in the base OSPF protocol, datagrams
  293.     (multicast  or  unicast)  are routed "as is" -- they are not further
  294.     encapsulated or decapsulated as they transit the Autonomous System.
  295.  
  296.     1.1.  Terminology
  297.  
  298.         This memo uses the terminology listed in section 1.2 of  [OSPF].
  299.         For  this  reason,  terms such as "Network", "Autonomous System"
  300.         and "link state advertisement" are assumed to be understood.  In
  301.         addition,  the  abbreviation  LSA is used for "link state adver-
  302.         tisement". For example, router links advertisements are referred
  303.         to  as router-LSAs and the new link state advertisement describ-
  304.         ing the location of members of a multicast group is referred  to
  305.         as a group-membership-LSA.
  306.  
  307.         [RFC 1112] discusses the data-link encapsulation of IP multicast
  308.         datagrams.  In  contrast  to the normal forwarding of IP unicast
  309.         datagrams, on a broadcast network the mapping of an IP multicast
  310.         destination  to a data-link destination address is not done with
  311.         the ARP protocol. Instead, static  mappings  have  been  defined
  312.         from  IP  multicast  destinations  to data-link addresses. These
  313.         mappings are dependent on network type;  for  some  networks  IP
  314.         multicasts  are  algorithmically  mapped  to data-link multicast
  315.         addresses, for other networks all IP multicast destinations  are
  316.         mapped  onto  the  data-link  broadcast  address.  This document
  317.         loosely describes both of these possible mappings  as  data-link
  318.         multicast.
  319.  
  320.         The following terms are also used throughout this document:
  321.  
  322.         o   Non-multicast router. A router running OSPF Version  2,  but
  323.             not  the  multicast extensions. These routers do not forward
  324.             multicast datagrams, but can interoperate with MOSPF routers
  325.             in  the  forwarding  of unicast packets. Routers running the
  326.             MOSPF protocol are referred to herein as  either  multicast-
  327.             capable routers or MOSPF routers.
  328.  
  329.         o   Non-broadcast networks. A network supporting the  attachment
  330.             of  more  than two stations, but not supporting the delivery
  331.             of a  single  physical  datagram  to  multiple  destinations
  332.  
  333.  
  334.  
  335. [Moy]                                                           [Page 6]
  336.  
  337. Internet Draft        Multicast Extensions to OSPF            March 1993
  338.  
  339.  
  340.             (i.e., not supporting data-link multicast). [OSPF] describes
  341.             these networks as non-broadcast, multi-access  networks.  An
  342.             example of a non-broadcast network is an X.25 PDN.
  343.  
  344.         o   Transit network. A network having two or more  OSPF  routers
  345.             attached.   These  networks can forward data traffic that is
  346.             neither locally-originated nor  locally-destined.  In  OSPF,
  347.             with  the  exception  of point-to-point networks and virtual
  348.             links, the neighborhood of each transit network is described
  349.             by a network links advertisement (network-LSA).
  350.  
  351.         o   Stub network. A network having only  a  single  OSPF  router
  352.             attached.  A network belonging to an OSPF system is either a
  353.             transit or a stub network, but never both.
  354.  
  355.     1.2.  Acknowledgments
  356.  
  357.         The multicast extensions to OSPF are based on Link-State  Multi-
  358.         cast  Routing algorithm presented in [Deering]. In addition, the
  359.         [Deering] paper contains a  section  on  Hierarchical  Multicast
  360.         Routing (providing the ideas for MOSPF's inter-area multicasting
  361.         scheme) and several Distance Vector (also  called  Bellman-Ford)
  362.         multicast  algorithms.  One  of  these Distance Vector multicast
  363.         algorithms, Truncated Reverse Path Broadcasting, has been imple-
  364.         mented in the Internet (see [RFC 1075]).
  365.  
  366.         The MOSPF protocol has been developed by the MOSPF Working Group
  367.         of  the  Internet  Engineering Task Force. Portions of this work
  368.         have been supported by DARPA under NASA contract NAG 2-650.
  369.  
  370. 2.  Multicast routing in MOSPF
  371.  
  372.     This section describes MOSPF's basic  multicast  routing  algorithm.
  373.     The  basic algorithm, run inside a single OSPF area, covers the case
  374.     where the source of  the  multicast  datagram  is  inside  the  area
  375.     itself.  Within  the  area,  the  path  of the datagram forms a tree
  376.     rooted at the datagram source.
  377.  
  378.     2.1.  Routing characteristics
  379.  
  380.         As a multicast datagram is  forwarded  along  its  shortest-path
  381.         tree,  the  datagram is delivered to each member of the destina-
  382.         tion multicast group. In MOSPF, the forwarding of the  multicast
  383.         datagram has the following properties:
  384.  
  385.         o   The path taken by a multicast datagram depends both  on  the
  386.             datagram's  source  and  its  multicast  destination. Called
  387.             source/destination routing, this  is  in  contrast  to  most
  388.  
  389.  
  390.  
  391. [Moy]                                                           [Page 7]
  392.  
  393. Internet Draft        Multicast Extensions to OSPF            March 1993
  394.  
  395.  
  396.             unicast  datagram  forwarding  algorithms  (like  OSPF) that
  397.             route based solely on destination.
  398.  
  399.         o   The path taken between the datagram's source and any partic-
  400.             ular  destination group member is the least cost path avail-
  401.             able. Cost is expressed in  terms  of  the  OSPF  link-state
  402.             metric.  For example, if the OSPF metric represents delay, a
  403.             minimum delay path is chosen. OSPF metrics are configurable.
  404.             A  metric  is  assigned  to  each outbound router interface,
  405.             representing the cost of sending a packet on that interface.
  406.             The  cost of a path is the sum of its constituent (outbound)
  407.             router interfaces[1].
  408.  
  409.         o   MOSPF takes advantage of any commonality of least cost paths
  410.             to  destination  group members. However, when members of the
  411.             multicast group are spread out over multiple  networks,  the
  412.             multicast  datagram must at times be replicated. This repli-
  413.             cation is performed as few times as possible  (at  the  tree
  414.             branches), taking maximum advantage of common path segments.
  415.  
  416.         o   For a given multicast datagram,  all  routers  calculate  an
  417.             identical shortest-path tree. There is a single path between
  418.             the datagram's source and any particular  destination  group
  419.             member.  This means that, unlike OSPF's treatment of regular
  420.             (unicast) IP data traffic, there is no provision for  equal-
  421.             cost multipath.
  422.  
  423.         o   On each packet hop, MOSPF  normally  forwards  IP  multicast
  424.             datagrams as data-link multicasts. There are two exceptions.
  425.             First, on non-broadcast networks, since there are  no  data-
  426.             link  multicast/broadcast services the datagram must be for-
  427.             warded to specific  MOSPF  neighbors  (see  Section  2.3.3).
  428.             Second,  a MOSPF router can be configured to forward IP mul-
  429.             ticasts on specific networks as data-link unicasts, in order
  430.             to  avoid  datagram  replication in certain anomalous situa-
  431.             tions (see Section 6.4).
  432.  
  433.         While MOSPF optimizes the path to any  given  group  member,  it
  434.         does  not  necessarily optimize the use of the internetwork as a
  435.         whole. To do so, instead of calculating  source-based  shortest-
  436.         path  trees,  something similar to a minimal spanning tree (con-
  437.         taining only the group members) would  need  to  be  calculated.
  438.         This  type  of minimal spanning tree is called a Steiner tree in
  439.         the literature. For a comparison of shortest-path  tree  routing
  440.         to  routing  using  Steiner  trees, see [Deering2] and [Bharath-
  441.         Kumar].
  442.  
  443.  
  444.  
  445.  
  446.  
  447. [Moy]                                                           [Page 8]
  448.  
  449. Internet Draft        Multicast Extensions to OSPF            March 1993
  450.  
  451.  
  452.     2.2.  Sample path of a multicast datagram
  453.  
  454.         As an example of multicast datagram routing in  MOSPF,  consider
  455.         the  sample  Autonomous System pictured in Figure 1. This figure
  456.         has been taken from the OSPF  specification  (see  [OSPF]).  The
  457.         larger  rectangles  represent  routers,  the  smaller rectangles
  458.         hosts. Oblongs and circles represent  multi-access  networks[2].
  459.         Lines  joining  routers are point-to-point serial connections. A
  460.         cost has been assigned to each outbound router interface.
  461.  
  462.         All routers in Figure 1 are  assumed  to  be  running  MOSPF.  A
  463.         number  of  hosts  have  been  added  to  the  figure. The hosts
  464.         labelled Ma have joined a particular multicast  group  (call  it
  465.         Group A) via the IGMP protocol.  These hosts are located on net-
  466.         works N2, N6 and N11. Similarly, using IGMP the  hosts  labelled
  467.         Mb  have  joined  a  separate multicast group B; these hosts are
  468.         located on networks N1, N2 and N3. Note that hosts can join mul-
  469.         tiple  multicast  groups; it is only for clarity of presentation
  470.         that each host has joined at most one multicast  group  in  this
  471.         example.   Also, hosts H2 through H5 have been added to the fig-
  472.         ure to serve as sources  for  multicast  datagrams.  Again,  the
  473.         datagrams'  sources  have  been  made  separate  from  the group
  474.         members only for clarity of presentation.
  475.  
  476.         To illustrate the forwarding of a  multicast  datagram,  suppose
  477.         that Host H2 (attached to Network N4) sends a multicast datagram
  478.         to multicast group B. This datagram originates  as  a  data-link
  479.         layer  multicast  on  Network  N4. Router RT3, being a multicast
  480.         router,  has  "opened  up"  its  interface  data-link  multicast
  481.         filters.  It  therefore  receives  the  multicast  datagram, and
  482.         attempts to forward it to  the  members  of  multicast  group  B
  483.         (located  on  networks  N1,  N2 and N3). This is accomplished by
  484.         sending a single copy of the datagram onto Network N3, again  as
  485.         a data-link multicast[3].  Upon receiving the multicast datagram
  486.         from RT3, routers RT1 and RT2 will then multicast  the  datagram
  487.         on their connected stub networks (N1 and N2 respectively).  Note
  488.         that, since the datagram is sent onto Network N3 as a  data-link
  489.         multicast, Router RT4 will also receive a copy. However, it will
  490.         not forward the datagram, since it does not lie  on  a  shortest
  491.         path  between  the source (Host H2) and any members of multicast
  492.         group B.
  493.  
  494.         Note that the path of the  multicast  datagram  depends  on  the
  495.         datagram's  source  network. If the above multicast datagram was
  496.         instead originated by Host H3, the path taken would  be  identi-
  497.         cal, since hosts H2 and H3 lie on the same network (Network N4).
  498.         However, if the datagram was originated by  Host  H4,  its  path
  499.         would  be  different. In this case, when Router RT3 receives the
  500.  
  501.  
  502.  
  503. [Moy]                                                           [Page 9]
  504.  
  505. Internet Draft        Multicast Extensions to OSPF            March 1993
  506.  
  507.  
  508.  
  509.                  +
  510.                  | 3+---+    +--+  +--+       N12      N14
  511.                N1|--|RT1|\1  |Mb|  |H4|         \ N13 /
  512.                 _|  +---+ \  +--+ /+--+         8\ |8/8
  513.                | +         \ _|__/                \|/
  514.              +--+   +--+    /    \   1+---+8    8+---+6
  515.              |Mb|   |Mb|   *  N3  *---|RT4|------|RT5|--------+
  516.              +--+  /+--+    \____/    +---+      +---+        |
  517.                   +         /   |                  |7         |
  518.                   | 3+---+ /    |                  |          |
  519.                 N2|--|RT2|/1    |1                 |6         |
  520.                 __|  +---+    +---+8            6+---+        |
  521.                |  +           |RT3|--------------|RT6|        |
  522.              +--+    +--+     +---+     +--+     +---+        |
  523.              |Ma|    |H3|_      |2     _|H2|     Ia|7         |
  524.              +--+    +--+ \     |     / +--+       |          |
  525.                            +---------+             |          |
  526.                                N4                  |          |
  527.                                                    |          |
  528.                                                    |          |
  529.                        N11                         |          |
  530.                    +---------+                     |          |
  531.                         |     \                    |          |    N12
  532.                         |3     +--+                |          |6 2/
  533.                       +---+    |Ma|                |        +---+/
  534.                       |RT9|    +--+                |        |RT7|---N15
  535.                       +---+                        |        +---+ 9
  536.                         |1                   +     |          |1
  537.                        _|__                  |   Ib|5       __|_   +--+
  538.                       /    \      1+----+2   |  3+----+1   /    \--|Ma|
  539.                      *  N9  *------|RT11|----|---|RT10|---*  N6  * +--+
  540.                       \____/       +----+    |   +----+    \____/
  541.                         |                    |                |
  542.                         |1                   +                |1
  543.              +--+   10+----+                N8              +---+
  544.              |H1|-----|RT12|                                |RT8|
  545.              +--+SLIP +----+                                +---+  +--+
  546.                         |2                                    |4  _|H5|
  547.                         |                                     |  / +--+
  548.                    +---------+                            +--------+
  549.                        N10                                    N7
  550.  
  551.                     Figure 1: A sample MOSPF configuration
  552.  
  553.         datagram, RT3 will drop the datagram instead  of  forwarding  it
  554.         (since  RT3  is  no longer on the shortest path to any member of
  555.         Group B).
  556.  
  557.  
  558.  
  559. [Moy]                                                          [Page 10]
  560.  
  561. Internet Draft        Multicast Extensions to OSPF            March 1993
  562.  
  563.  
  564.         Note that the path of the multicast datagram also depends on the
  565.         destination  multicast  group.  If  Host H2 sends a multicast to
  566.         Group A, the path taken is as follows. The datagram again starts
  567.         as  a  multicast  on  Network  N4.  Router  RT3 receives it, and
  568.         creates two copies. One is sent onto Network N3  which  is  then
  569.         forwarded  onto  Network  N2  by  RT2. The other copy is sent to
  570.         Router RT10 (via RT6), where the datagram is again split,  even-
  571.         tually  to  be  delivered  onto  networks N6 and N11. Note that,
  572.         although multiple copies  of  the  datagram  are  produced,  the
  573.         datagram itself is not modified (except for its IP TTL) as it is
  574.         forwarded. No encapsulation of the datagram  is  performed;  the
  575.         destination  of  the  datagram is always listed as the multicast
  576.         group A.
  577.  
  578.     2.3.  MOSPF forwarding mechanism
  579.  
  580.         Each MOSPF router in the path of a multicast datagram bases  its
  581.         forwarding  decision on the contents of a data cache. This cache
  582.         is called the forwarding cache. There is a  separate  forwarding
  583.         cache  entry  for  each source/destination combination[4].  Each
  584.         cache entry indicates, for multicast datagrams  having  matching
  585.         source  and destination, which neighboring node (i.e., router or
  586.         network) the datagram must be received from (called the upstream
  587.         node) and which interfaces the datagram should then be forwarded
  588.         out of (called the downstream interfaces).
  589.  
  590.         A forwarding cache entry is actually built  from  two  component
  591.         pieces.  The first of these components is called the local group
  592.         database. This database, built by the IGMP  protocol,  indicates
  593.         the group membership of the router's directly attached networks.
  594.         The local group database enables the local delivery of multicast
  595.         datagrams.  The second component is the datagram's shortest path
  596.         tree. This tree, built on  demand,  is  rooted  at  a  multicast
  597.         datagram's source. The datagram's shortest path tree enables the
  598.         delivery of multicast datagrams to distant (i.e.,  not  directly
  599.         attached) group members.
  600.  
  601.         2.3.1.  IGMP interface: the local group database
  602.  
  603.             The local group database keeps track of the group membership
  604.             of  the  router's  directly attached networks. Each entry in
  605.             the local group database  is  a  [group,  attached  network]
  606.             pair,  which  indicates that the attached network has one or
  607.             more IP hosts belonging  to  the  IP  multicast  destination
  608.             group.  This  information  is  then  used by the router when
  609.             deciding which  directly  attached  networks  to  forward  a
  610.             received  IP  multicast  datagram onto, in order to complete
  611.             delivery of the datagram to (local) group members.
  612.  
  613.  
  614.  
  615. [Moy]                                                          [Page 11]
  616.  
  617. Internet Draft        Multicast Extensions to OSPF            March 1993
  618.  
  619.  
  620.             The local group database is built through the  operation  of
  621.             the  Internet  Group  Management  Protocol  (IGMP;  see [RFC
  622.             1112]). When a MOSPF router becomes Designated Router on  an
  623.             attached  network  (call  the network N1), it starts sending
  624.             periodic IGMP Host Membership Queries on the network.  Hosts
  625.             then respond with IGMP Host Membership Reports, one for each
  626.             multicast group to which they belong. Upon receiving a  Host
  627.             Membership  Report  for  a  multicast  group  A,  the router
  628.             updates its local group database  by  adding/refreshing  the
  629.             entry  [Group A, N1]. If at a later time Reports for Group A
  630.             cease to be heard on the network, the entry is then  deleted
  631.             from the local group database.
  632.  
  633.             It is important to note that on any particular network,  the
  634.             sending of IGMP Host Membership Queries and the listening to
  635.             IGMP Host Membership Reports  is  performed  solely  by  the
  636.             Designated  Router.  A  MOSPF router ignores Host Membership
  637.             Reports received on those networks where the router has  not
  638.             been  elected Designated Router[5].  This means that at most
  639.             one router performs these IGMP functions on  any  particular
  640.             network,  and  ensures that the network appears in the local
  641.             group database of at most one router. This  prevents  multi-
  642.             cast  datagrams  from being replicated as they are delivered
  643.             to local group members. As a  result,  each  router  in  the
  644.             Autonomous System has a different local group database. This
  645.             is in contrast to the MOSPF link  state  database,  and  the
  646.             datagram  shortest-path  trees  (see  Section 2.3.2), all of
  647.             which are identical in each router belonging  to  the  Auto-
  648.             nomous System.
  649.  
  650.             The existence of local group members must be communicated to
  651.             the  rest  of  the  routers  in  the Autonomous System. This
  652.             ensures that a remotely-originated multicast  datagram  will
  653.             be  forwarded  to  the  router for distribution to its local
  654.             group members. This communication  is  accomplished  through
  655.             the  creation  of  a  group-membership-LSA.  Like other link
  656.             state advertisements, the  group-membership-LSA  is  flooded
  657.             throughout  the  Autonomous  System. The router originates a
  658.             separate group-membership-LSA for each multicast group  hav-
  659.             ing  one  or  more entries in the router's local group data-
  660.             base. The router's group-membership-LSA (say  for  Group  A)
  661.             lists  those local transit vertices (i.e., the router itself
  662.             and/or any directly connected transit networks) that  should
  663.             not  be  pruned from Group A's datagram shortest-path trees.
  664.             The router lists  itself  in  its  group-membership-LSA  for
  665.             Group  A  if  either 1) one or more of the router's attached
  666.             stub networks contain Group  A  members  or  2)  the  router
  667.             itself  is  a member of Group A. The router lists a directly
  668.  
  669.  
  670.  
  671. [Moy]                                                          [Page 12]
  672.  
  673. Internet Draft        Multicast Extensions to OSPF            March 1993
  674.  
  675.  
  676.             connected transit network in  the  group-membership-LSA  for
  677.             Group  A  if  both 1) the router is Designated Router on the
  678.             network and 2) the network contains  one  or  more  Group  A
  679.             members.
  680.  
  681.             Consider again the example pictured in Figure 1.  If  Router
  682.             RT3  has been elected Designated Router for Network N3, then
  683.             Table 1: lists the local  group  database  for  the  routers
  684.             RT1-RT4.
  685.  
  686.             In this case, each of the routers RT1, RT2 and RT3 will ori-
  687.             ginate  a group-membership-LSA for Group B. In addition, RT2
  688.             will also be originating a group-membership-LSA for Group A.
  689.             RT1  and  RT2's  group-membership-LSAs  will list solely the
  690.             routers themselves (N1 and  N2  are  stub  networks).  RT3's
  691.             group-membership-LSA will list the transit Network N3.
  692.  
  693.             Figure 2 displays the Autonomous System's link  state  data-
  694.             base.  A router/transit network is labelled with a multicast
  695.             group if (and only if) it has been  mentioned  in  a  group-
  696.             membership-LSA for the group When building the shortest-path
  697.             tree for a particular  multicast  datagram,  this  labelling
  698.             enables  those  branches  without group members to be pruned
  699.             from  the  tree.  The  process  of  building   a   multicast
  700.             datagram's shortest path tree is discussed in Section 2.3.2.
  701.  
  702.             Note that none of the hosts in Figure 1 belonging to  multi-
  703.             cast  groups  A  and  B show up explicitly in the link state
  704.             database (see Figure 2).  In fact, looking at the link state
  705.             database  you cannot even determine which stub networks con-
  706.             tain multicast group members. The link state database simply
  707.             indicates  those  routers/transit  networks  having attached
  708.             group members. This is all that is necessary for  successful
  709.             forwarding of multicast datagrams.
  710.  
  711.  
  712.  
  713.                  Router   local group database
  714.                  _____________________________________
  715.                  RT1      [Group B, N1]
  716.                  RT2      [Group A, N2], [Group B, N2]
  717.                  RT3      [Group B, N3]
  718.                  RT4      None
  719.  
  720.  
  721.                  Table 1: Sample local group databases
  722.  
  723.  
  724.  
  725.  
  726.  
  727. [Moy]                                                          [Page 13]
  728.  
  729. Internet Draft        Multicast Extensions to OSPF            March 1993
  730.  
  731.  
  732.  
  733.                                 **FROM**
  734.  
  735.                  |RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|
  736.                  |1 |2 |3 |4 |5 |6 |7 |8 |9 |10|11|12|N3|N6|N8|N9|
  737.               ----- ---------------------------------------------
  738.               RT1|  |  |  |  |  |  |  |  |  |  |  |  |0 |  |  |  |
  739.               RT2|  |  |  |  |  |  |  |  |  |  |  |  |0 |  |  |  |
  740.               RT3|  |  |  |  |  |6 |  |  |  |  |  |  |0 |  |  |  |
  741.               RT4|  |  |  |  |8 |  |  |  |  |  |  |  |0 |  |  |  |
  742.               RT5|  |  |  |8 |  |6 |6 |  |  |  |  |  |  |  |  |  |
  743.               RT6|  |  |8 |  |7 |  |  |  |  |5 |  |  |  |  |  |  |
  744.               RT7|  |  |  |  |6 |  |  |  |  |  |  |  |  |0 |  |  |
  745.           *   RT8|  |  |  |  |  |  |  |  |  |  |  |  |  |0 |  |  |
  746.           *   RT9|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |0 |
  747.           T  RT10|  |  |  |  |  |7 |  |  |  |  |  |  |  |0 |0 |  |
  748.           O  RT11|  |  |  |  |  |  |  |  |  |  |  |  |  |  |0 |0 |
  749.           *  RT12|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |0 |
  750.           *    N1|3 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  751.                N2|  |3 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  752.                N3|1 |1 |1 |1 |  |  |  |  |  |  |  |  |  |  |  |  |
  753.                N4|  |  |2 |  |  |  |  |  |  |  |  |  |  |  |  |  |
  754.                N6|  |  |  |  |  |  |1 |1 |  |1 |  |  |  |  |  |  |
  755.                N7|  |  |  |  |  |  |  |4 |  |  |  |  |  |  |  |  |
  756.                N8|  |  |  |  |  |  |  |  |  |3 |2 |  |  |  |  |  |
  757.                N9|  |  |  |  |  |  |  |  |1 |  |1 |1 |  |  |  |  |
  758.               N10|  |  |  |  |  |  |  |  |  |  |  |2 |  |  |  |  |
  759.               N11|  |  |  |  |  |  |  |  |3 |  |  |  |  |  |  |  |
  760.               N12|  |  |  |  |8 |  |2 |  |  |  |  |  |  |  |  |  |
  761.               N13|  |  |  |  |8 |  |  |  |  |  |  |  |  |  |  |  |
  762.               N14|  |  |  |  |8 |  |  |  |  |  |  |  |  |  |  |  |
  763.               N15|  |  |  |  |  |  |9 |  |  |  |  |  |  |  |  |  |
  764.                H1|  |  |  |  |  |  |  |  |  |  |  |10|  |  |  |  |
  765.  
  766.  
  767.                      Figure 2: The MOSPF database.
  768.  
  769.                  Networks and routers are represented by vertices.
  770.                  An edge of cost X connects Vertex A to Vertex B iff
  771.                  the intersection of Column A and Row B is marked
  772.                  with an X. In addition, RT1, RT2 and N3 are labelled
  773.                  with multicast group A and RT1, N6 and RT9 are
  774.                  labelled with multicast group B.
  775.  
  776.         2.3.2.  A datagram's shortest-path tree
  777.  
  778.             While  the  local  group  database  facilitates  the   local
  779.             delivery  of  multicast  datagrams, the datagram's shortest-
  780.  
  781.  
  782.  
  783. [Moy]                                                          [Page 14]
  784.  
  785. Internet Draft        Multicast Extensions to OSPF            March 1993
  786.  
  787.  
  788.             path tree describes the intermediate hops taken by a  multi-
  789.             cast  datagram  as it travels from its source to the indivi-
  790.             dual  multicast  group  members.  As  mentioned  above,  the
  791.             datagram's shortest-path tree is a pruned shortest-path tree
  792.             rooted  at  the  datagram's  source.  Two  datagrams  having
  793.             differing  [source  net,  multicast  destination]  pairs may
  794.             have, and in  fact  probably  will  have,  different  pruned
  795.             shortest-path trees.
  796.  
  797.             A datagram's shortest path tree  is  built  "on  demand"[6],
  798.             i.e., when the first multicast datagram is received having a
  799.             particular [source net, multicast destination]  combination.
  800.             To  build  the  datagram's shortest-path tree, the following
  801.             calculations are performed. First, the datagram's source  IP
  802.             network  is  located  in the link state database. Then using
  803.             the router-LSAs and network-LSAs in the link state database,
  804.             a  shortest-path  tree is built having the source network as
  805.             root. To complete the process, the branches that do not con-
  806.             tain  routers/transit  networks that have been labelled with
  807.             the  particular  multicast   destination   (via   a   group-
  808.             membership-LSA) are pruned from the tree.
  809.  
  810.             As an example of the building of a datagram's shortest  path
  811.             tree,  again consider the Autonomous System in Figure 1. The
  812.             Autonomous System's link state database is pictured in  Fig-
  813.             ure 2. When a router initially receives a multicast datagram
  814.             sent by Host H2 to the  multicast  group  A,  the  following
  815.             steps  are  taken: Host H2 is first determined to be on Net-
  816.             work N4. Then the shortest path tree rooted  at  net  N4  is
  817.             calculated[7],  pruning  those  branches that do not contain
  818.             routers/transit networks that have been  labelled  with  the
  819.             multicast  group A. This results in the pruned shortest-path
  820.             tree pictured in Figure 3. Note that at this point  all  the
  821.             leaves  of  the  tree  are routers/transit networks labelled
  822.             with multicast group A (routers RT2 and RT9 and transit Net-
  823.             work N6).
  824.  
  825.             In order to forward the multicast datagram, each router must
  826.             find  its own position in the datagram's shortest path tree.
  827.             The router's (call it Router RTX) position in the datagram's
  828.             pruned shortest-path tree consists of 1) RTX's parent in the
  829.             tree (this will be the  forwarding  cache  entry's  upstream
  830.             node) and 2) the list of RTX's interfaces that lead to down-
  831.             stream routers/transit networks that have been labelled with
  832.             the  datagram's destination (these will be added to the for-
  833.             warding cache entry as  downstream  interfaces).  Note  that
  834.             after  calculating  the  datagram's  shortest  path  tree, a
  835.             router may find that it is itself  not  on  the  tree.  This
  836.  
  837.  
  838.  
  839. [Moy]                                                          [Page 15]
  840.  
  841. Internet Draft        Multicast Extensions to OSPF            March 1993
  842.  
  843.  
  844.  
  845.                                        o RT3 (N4, origin)
  846.                                       / \
  847.                                     1/   \8
  848.                                     /     \
  849.                            N3 (Mb) o       o RT6
  850.                                   /         \
  851.                                 0/           \7
  852.                                 /             \
  853.                    RT2 (Ma,Mb) o               o RT10
  854.                                               / \
  855.                                             3/   \1
  856.                                             /     \
  857.                                         N8 o       o N6 (Ma)
  858.                                           /
  859.                                         0/
  860.                                         /
  861.                                   RT11 o
  862.                                       /
  863.                                     1/
  864.                                     /
  865.                                 N9 o
  866.                                   /
  867.                                 0/
  868.                                 /
  869.                       RT9 (Ma) o
  870.  
  871.  
  872.  
  873.                  Figure 3: Sample datagram's shortest-path tree,
  874.                           source N4, destination Group A
  875.  
  876.             would be indicated by a forwarding  cache  entry  having  no
  877.             upstream node or an empty list of downstream interfaces.
  878.  
  879.             As an example of a router describing  its  position  on  the
  880.             datagram's  shortest-path tree, consider Router RT10 in Fig-
  881.             ure 3. Router RT10's  upstream  node  for  the  datagram  is
  882.             Router  RT6,  and  there  are two downstream interfaces: one
  883.             connecting to Network N6 and the other connecting to Network
  884.             N8.
  885.  
  886.         2.3.3.  Support for Non-broadcast networks
  887.  
  888.             When forwarding multicast datagrams over non-broadcast  net-
  889.             works, the datagram cannot be sent as a link-level multicast
  890.             (since neither link-level multicast nor broadcast  are  sup-
  891.             ported  on  these  networks),  but must instead be forwarded
  892.  
  893.  
  894.  
  895. [Moy]                                                          [Page 16]
  896.  
  897. Internet Draft        Multicast Extensions to OSPF            March 1993
  898.  
  899.  
  900.             separately to specific neighbors. To facilitate  this,  for-
  901.             warding  cache entries can also contain downstream neighbors
  902.             as well as downstream interfaces.
  903.  
  904.             The IGMP protocol is not  defined  over  non-broadcast  net-
  905.             works.  For  this  reason,  there  cannot  be  group members
  906.             directly attached to non-broadcast  networks,  nor  do  non-
  907.             broadcast  networks  ever  appear  in  local  group database
  908.             entries.
  909.  
  910.             As an example, suppose that Network N3 in  Figure  1  is  an
  911.             X.25  PDN.  Consider Router RT3's forwarding cache entry for
  912.             datagrams having source Network N4 and multicast destination
  913.             Group  B.  In  place  of  having the interface to Network N3
  914.             appear as the downstream interface in the matching  forward-
  915.             ing  cache  entry, the neighboring routers RT1 and RT2 would
  916.             instead appear as separate downstream  neighbors.  In  addi-
  917.             tion,  in  this  case  there  could  not be a Group B member
  918.             directly attached to Network N3.
  919.  
  920.         2.3.4.  Details concerning forwarding cache entries
  921.  
  922.             Each of the  downstream  interface/neighbors  in  the  cache
  923.             entry is labelled with a TTL value. This value indicates the
  924.             number of hops a datagram forwarded out of the interface (or
  925.             forwarded  to  the  neighbor)  would  have  to travel before
  926.             encountering a router/transit network requesting the  multi-
  927.             cast  destination. The reason that a hop count is associated
  928.             with  each  downstream  interface/neighbor  is  so  that  IP
  929.             multicast's  expanding  ring  search  procedure  can be more
  930.             efficiently implemented. By expanding ring search  is  meant
  931.             the  following.  Hosts can restrict the frowarding extent of
  932.             the IP multicast datagrams that  they  send  by  appropriate
  933.             setting of the TTL value in the datagram's IP header.  Then,
  934.             for example, to search for the nearest server the  host  can
  935.             send  multicasts  first  with  TTL set to 1, then 2, etc. By
  936.             attaching a hop count to each downstream  interface/neighbor
  937.             in  the  forwarding  cache,  datagrams will not be forwarded
  938.             unless they will ultimately reach  a  multicast  destination
  939.             before  their  TTL  expires[8].  This avoids wasting network
  940.             bandwidth during an expanding ring search.
  941.  
  942.             As an example consider Router  RT10's  forwarding  cache  in
  943.             Figure  3.   Router  RT10's  cache  entry has two downstream
  944.             interfaces. The first, connecting to Network N6, is labelled
  945.             as  having  a  group  member  one hop away (Network N6). The
  946.             second, which connects to Network N8, is labelled as  having
  947.             a group member two hops away (Router RT9).
  948.  
  949.  
  950.  
  951. [Moy]                                                          [Page 17]
  952.  
  953. Internet Draft        Multicast Extensions to OSPF            March 1993
  954.  
  955.  
  956.             Both the datagram shortest path tree  and  the  local  group
  957.             database  may  contribute  downstream interfaces to the for-
  958.             warding cache entries. As an example,  if  a  router  has  a
  959.             local group database entry of [Group G, NX], then a forward-
  960.             ing cache entry for Group G, regardless of destination, will
  961.             list  the  router  interface  to  Network NX as a downstream
  962.             interface.  Such  a  downstream  interface  will  always  be
  963.             labelled with a TTL of 1.
  964.  
  965.             As an example of forwarding cache  entries,  again  consider
  966.             the  Autonomous System pictured in Figure 1. Suppose Host H2
  967.             sends a multicast datagram to multicast  group  A.  In  that
  968.             case, some routers will not even attempt to build a forward-
  969.             ing cache entry (e.g, router RT5) because  they  will  never
  970.             receive  the  multicast  datagram  in the first place. Other
  971.             routers will receive the multicast datagram (since they  are
  972.             forwarded  as link-level multicasts), but after building the
  973.             pruned shortest path tree will notice that  they  themselves
  974.             are  not  a part of the tree (routers RT1, RT4, RT7, RT8 and
  975.             RT12). These latter routers  will  install  an  empty  cache
  976.             entry,  indicating  that they do not participate in the for-
  977.             warding of the multicast datagram. A sample of the  forward-
  978.             ing  cache  entries  built by the other routers in the Auto-
  979.             nomous System is pictured in Table 2.
  980.  
  981.             A MOSPF router must clear its entire forwarding  cache  when
  982.             the  Autonomous  System's  topology changes, because all the
  983.             datagram shortest-path trees must be rebuilt. Likewise, when
  984.             the  location  of  a  multicast  group's  membership changes
  985.             (reflected by a change in group-membership-LSAs), all  cache
  986.             entries associated with the particular multicast destination
  987.             group  must  be  cleared.  Other  than  these   two   cases,
  988.  
  989.  
  990.               Router   Upstream     Downstream interfaces
  991.                        node         (interface:hops)
  992.               ___________________________________________
  993.               RT10     Router RT6   (N6:1), (N8:2)
  994.               RT11     Net N8       (N9:1)
  995.               RT3      Net N4       (N3:1), (RT6:3)
  996.               RT6      Router RT3   (RT10:2)
  997.               RT2      Net N3       (N2:1)
  998.  
  999.  
  1000.                Table 2: Sample forwarding cache entries,
  1001.                  for source N4 and destination Group A.
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007. [Moy]                                                          [Page 18]
  1008.  
  1009. Internet Draft        Multicast Extensions to OSPF            March 1993
  1010.  
  1011.  
  1012.             forwarding cache entries need not ever be deleted or  other-
  1013.             wise  modified;  in particular, the forwarding cache entries
  1014.             do not have to be aged. However,  forwarding  cache  entries
  1015.             can be freely deleted after some period of inactivity (i.e.,
  1016.             garbage collected), if router memory resources are in  short
  1017.             supply.
  1018.  
  1019. 3.  Inter-area multicasting
  1020.  
  1021.     Up to this point this memo has discussed multicast  forwarding  when
  1022.     the  entire  Autonomous  System is a single OSPF area. The logic for
  1023.     when the multicast  datagram's  source  and  its  destination  group
  1024.     members  belong  to  the  same  OSPF  area is the same. This section
  1025.     explains the behavior of the  MOSPF  protocol  when  the  datagram's
  1026.     source  and  (at least some of) its destination group members belong
  1027.     to different OSPF areas. This situation is called inter-area  multi-
  1028.     cast.
  1029.  
  1030.     Inter-area multicast brings  up  the  following  issues,  which  are
  1031.     resolved in succeeding sections:
  1032.  
  1033.     o   Are the group-membership-LSAs specific to a single area? And  if
  1034.         they  are, how is group membership information conveyed from one
  1035.         area to the next?
  1036.  
  1037.     o   How are the datagram shortest-path trees built in the inter-area
  1038.         case,  since complete information concerning the topology of the
  1039.         datagram source's neighborhood is not available  to  routers  in
  1040.         other areas?
  1041.  
  1042.     o   In an area border router, multiple datagram shortest-path  trees
  1043.         are  built,  one  for each attached area. How are these separate
  1044.         datagram shortest-path trees combined into a  single  forwarding
  1045.         cache entry?
  1046.  
  1047.     It should be noted in the following that the basic protocol  mechan-
  1048.     isms in the inter-area case are the same as for the intra-area case.
  1049.     Forwarding of multicasts is still defined by  the  contents  of  the
  1050.     forwarding  cache. The forwarding cache is still built from the same
  1051.     two components: the local group database and the datagram  shortest-
  1052.     path  trees. And while the calculation of the datagram shortest-path
  1053.     trees is different in the inter-area case  (see  Section  3.2),  the
  1054.     local  group database is built exactly the same as in the intra-area
  1055.     case (i.e., MOSPF's interface with IGMP  remains  unchanged  in  the
  1056.     presence  of  areas). Finally, the forwarding algorithm described in
  1057.     Section 11 is the same for both the intra-area and inter-area cases.
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063. [Moy]                                                          [Page 19]
  1064.  
  1065. Internet Draft        Multicast Extensions to OSPF            March 1993
  1066.  
  1067.  
  1068.     The following discussion uses the  area  configuration  pictured  in
  1069.     Figure  4 as an example. This figure, taken from the OSPF specifica-
  1070.     tion, shows an Autonomous System split into  three  areas  (Area  1,
  1071.     Area  2  and  Area  3).  A  single backbone area has been configured
  1072.     (everything outside of the shading). Since the backbone area must be
  1073.     contiguous,  a  single  virtual link has been configured between the
  1074.     area border routers RT10 and RT11.  Additionally,  an  area  address
  1075.     range has been configured in Router RT11 so that Networks N9-N11 and
  1076.     Host H1 will be reported as a single route outside of  Area  3  (via
  1077.     summary-link-LSAs).
  1078.  
  1079.     3.1.  Extent of group-membership-LSAs
  1080.  
  1081.         Group-membership-LSAs are specific to a single OSPF  area.  This
  1082.         means  that,  just  as  with  OSPF router-LSAs, network-LSAs and
  1083.         summary-link-LSAs, a group-membership-LSA is flooded  throughout
  1084.         a  single  area  only[9].   A  router attached to multiple areas
  1085.         (i.e., an area border router) may  end  up  originating  several
  1086.         group-membership-LSAs concerning a single multicast destination,
  1087.         one for each attached area.  However, as we will see below,  the
  1088.         contents  of  these group-membership-LSAs will vary depending on
  1089.         their associated areas.
  1090.  
  1091.         Just as in OSPF, each MOSPF area has its own  link  state  data-
  1092.         base.  The MOSPF database is simply the OSPF link state database
  1093.         enhanced by the group-membership-LSAs. Consider again  the  area
  1094.         configuration  pictured  in  Figure  4. The result of adding the
  1095.         group-membership-LSAs to the area databases yields the databases
  1096.         pictured  in  Figures  6  and  7.  Figure 6 shows Area 1's MOSPF
  1097.         database. Figure 7 shows the backbone's MOSPF  database.  Super-
  1098.         scripts  indicate which transit vertices have been advertised as
  1099.         requesting particular multicast destinations. A  superscript  of
  1100.         "w"  indicates  that the router is advertising itself as a wild-
  1101.         card multicast receiver (see below). The dashed lines  are  OSPF
  1102.         summary-link-LSAs  or  AS  external-link-LSAs.  Note in Figure 7
  1103.         that Router RT11 has condensed its routes to Networks N9-N11 and
  1104.         Host H1 into a single summary-link-LSA.
  1105.  
  1106.         Suppose an OSPF router has a  local  group  database  entry  for
  1107.         [Group  Y,  Network  X].  The  router  then  originates a group-
  1108.         membership-LSA for Group Y into the area containing  Network  X.
  1109.         For  example,  in  the  area configuration pictured in Figure 4,
  1110.         Router RT1 originates a group-membership-LSA for Group  B.  This
  1111.         group-membership-LSA  is  flooded  throughout  Area  1,  and  no
  1112.         further. Likewise, assuming that Router  RT3  has  been  elected
  1113.         Designated  Router  for  Network  N3,  RT3  originates  a group-
  1114.         membership-LSA into Area 1 listing the  transit  Network  N3  as
  1115.         having  group  members. Note that in the link state database for
  1116.  
  1117.  
  1118.  
  1119. [Moy]                                                          [Page 20]
  1120.  
  1121. Internet Draft        Multicast Extensions to OSPF            March 1993
  1122.  
  1123.  
  1124.  
  1125.            ..................................
  1126.            .     +                          .
  1127.            .     | 3+---+    +--+  +--+     . N12      N14
  1128.            .   N1|--|RT1|\1  |Mb|  |H4|     .   \ N13 /
  1129.            .    _|  +---+ \  +--+ /+--+     .   8\ |8/8
  1130.            .   | +         \ _|__/          .     \|/
  1131.            . +--+   +--+    /    \   1+---+8.   8+---+6
  1132.            . |Mb|   |Mb|   *  N3  *---|RT4|------|RT5|--------+
  1133.            . +--+  /+--+    \____/    +---+ .    +---+        |
  1134.            .      +         /   |           .      |7         |
  1135.            .      | 3+---+ /    |           .      |          |
  1136.            .    N2|--|RT2|/1    |1          .      |6         |
  1137.            .    __|  +---+    +---+8        .   6+---+        |
  1138.            .   |  +           |RT3|--------------|RT6|        |
  1139.            . +--+    +--+     +---+     +--+.    +---+        |
  1140.            . |Ma|    |H3|_      |2     _|H2|.    Ia|7         |
  1141.            . +--+    +--+ \     |     / +--+.      |          |
  1142.            .               +---------+      .      |          |
  1143.            .Area 1             N4           .      |          |
  1144.            ..................................      |          |
  1145.            ................................        |          |
  1146.            .           N11                .        |          |
  1147.            .       +---------+            .        |          |
  1148.            .            |     \           .        |          |    N12
  1149.            .            |3     +--+       .        |          |6 2/
  1150.            .          +---+    |Ma|       .        |        +---+/
  1151.            .          |RT9|    +--+       .        |        |RT7|---N15
  1152.            .          +---+               .......  |        +---+ 9
  1153.            .            |1                .. +  ...|..........|1........
  1154.            .           _|__               .. |   Ib|5       __|_   +--+.
  1155.            .          /    \      1+----+2.. |  3+----+1   /    \--|Ma|.
  1156.            .         *  N9  *------|RT11|----|---|RT10|---*  N6  * +--+.
  1157.            .          \____/       +----+ .. |   +----+    \____/      .
  1158.            .            |            !*******|*****!          |        .
  1159.            .            |1           Virtual + Link           |1       .
  1160.            . +--+   10+----+              ..N8              +---+      .
  1161.            . |H1|-----|RT12|              ..                |RT8|      .
  1162.            . +--+SLIP +----+              ..                +---+  +--+.
  1163.            .            |2                ..                  |4  _|H5|.
  1164.            .            |                 ..                  |  / +--+.
  1165.            .       +---------+            ..              +--------+   .
  1166.            .           N10          Area 3..Area 2            N7       .
  1167.            .............................................................
  1168.  
  1169.                     Figure 4: A sample MOSPF area configuration
  1170.  
  1171.         Area  1  (Figure  6)  both  Router  RT1  and  Network  N3   have
  1172.  
  1173.  
  1174.  
  1175. [Moy]                                                          [Page 21]
  1176.  
  1177. Internet Draft        Multicast Extensions to OSPF            March 1993
  1178.  
  1179.  
  1180.         accordingly been labelled with Group B.
  1181.  
  1182.         In OSPF, the area border routers forward routing information and
  1183.         data  traffic  between  areas.  In  MOSPF.  a subset of the area
  1184.         border routers, called the inter-area multicast forwarders, for-
  1185.         ward   group  membership  information  and  multicast  datagrams
  1186.         between areas. Whether a given OSPF area border router is also a
  1187.         MOSPF  inter-area multicast forwarder is configuration dependent
  1188.         (see Section B.1). In Figure 4 we assume that  all  area  border
  1189.         routers are also inter-area multicast forwarders.
  1190.  
  1191.         In order to convey group membership information  between  areas,
  1192.         inter-area   multicast  forwarders  "summarize"  their  attached
  1193.         areas' group membership to the backbone. This  is  very  similar
  1194.         functionality to the summary-link-LSAs that are generated in the
  1195.         base OSPF protocol.  An inter-area  multicast  forwarder  calcu-
  1196.         lates  which  groups  have  members in its attached non-backbone
  1197.         areas. Then, for each of these groups, the inter-area  multicast
  1198.         forwarder injects a group-membership-LSA into the backbone area.
  1199.         For example, in Figure 4 there are two groups having members  in
  1200.         Area  1:  Group A and Group B. For that reason, both of Area 1's
  1201.         inter-area multicast forwarders (Routers  RT3  and  RT4)  inject
  1202.         group-membership-LSAs  for  these  two groups into the backbone.
  1203.         As a result both of these routers are labelled with Groups A and
  1204.         B in the backbone link state database (see Figure 7).
  1205.  
  1206.         However, unlike the summarization of unicast destinations in the
  1207.         base  OSPF  protocol,  the  summarization of group membership in
  1208.         MOSPF is asymmetric. While a non-backbone area's  group  member-
  1209.         ship is summarized to the backbone, this information is not then
  1210.         readvertised  into  other  non-backbone  areas.   Nor   is   the
  1211.         backbone's  group  membership  summarized  for  the non-backbone
  1212.         areas. Going back to the example in Figure 4, while the presence
  1213.         of  Area 3's group (Group A) is advertised to the backbone, this
  1214.         information is not then redistributed to Area 1. In other words,
  1215.  
  1216.                 membership    +------------------+   datagrams
  1217.                     + > > > >>|     Backbone     |< < < < +
  1218.                     ^         +------------------+        ^
  1219.                     ^        /         |          \       ^
  1220.                     ^       /          |           \      ^
  1221.                +----^-----+/      +----------+      \+----^-----+
  1222.                |  Area 1  |       |  Area 2  |       |  Area 3  |
  1223.                +----------+       +----------+       +----------+
  1224.  
  1225.                     Figure 5: Inter-area routing architecture
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231. [Moy]                                                          [Page 22]
  1232.  
  1233. Internet Draft        Multicast Extensions to OSPF            March 1993
  1234.  
  1235.  
  1236.         routers internal to Area 1  have  no  idea  of  Area  3's  group
  1237.         membership.
  1238.  
  1239.         At this point, if no extra functionality  was  added  to  MOSPF,
  1240.         multicast  traffic  originating in Area 1 destined for Multicast
  1241.         Group A would never be forwarded to those  Group  A  members  in
  1242.         Area  3.  To  accomplish this, the notion of wild-card multicast
  1243.         receivers is introduced. A wild-card  multicast  receiver  is  a
  1244.         router  to  which all multicast traffic, regardless of multicast
  1245.         destination, should be forwarded. A router's wild-card multicast
  1246.         reception  status is per-area. In non-backbone areas, all inter-
  1247.         area multicast forwarders[10] are wild-card multicast receivers.
  1248.         This  ensures  that  all multicast traffic originating in a non-
  1249.         backbone area will be forwarded to its inter-area multicast for-
  1250.         warders,  and hence to the backbone area. Since the backbone has
  1251.         complete knowledge of all areas' group membership, the  datagram
  1252.         can  then  be  forwarded  to all group members. Note that in the
  1253.         backbone  itself  there  is  no  need  for  wild-card  multicast
  1254.         receivers[11].  As an example, note that Routers RT3 and RT4 are
  1255.         wild-card multicast receivers in Area 1 (see  Figure  6),  while
  1256.         there are none in the backbone (see Figure 7).
  1257.  
  1258.         This yields the inter-area routing architecture pictured in Fig-
  1259.         ure  5.   All group membership is advertised by the non-backbone
  1260.         areas into the backbone.  Likewise,  all  IP  multicast  traffic
  1261.         arising  in the non-backbone areas is forwarded to the backbone.
  1262.         Since at this point group membership information meets the  mul-
  1263.         ticast  datagram  traffic,  delivery  of the multicast datagrams
  1264.         becomes possible.
  1265.  
  1266.     3.2.  Building inter-area datagram shortest-path trees
  1267.  
  1268.         When building datagram shortest-path trees in  the  presence  of
  1269.         areas,  it is often the case that the source of the datagram and
  1270.         (at least some of) the destination group members are in separate
  1271.         areas.  Since  detailed  topological  information concerning one
  1272.         OSPF area is not distributed to other OSPF areas  (the  flooding
  1273.         of  router-LSAs,  network-LSAs and group-membership-LSAs is res-
  1274.         tricted to a single OSPF area only), the  building  of  complete
  1275.         datagram  shortest-path  trees is often impossible in the inter-
  1276.         area case. To compensate, approximations are  made  through  the
  1277.         use of wild-card multicast receivers and OSPF summary-link-LSAs.
  1278.  
  1279.         When it first receives a datagram for a particular [source  net,
  1280.         destination group] pair, a router calculates a separate datagram
  1281.         shortest-path tree for each of the router's attached areas. Each
  1282.         datagram  shortest-path tree is built solely from LSAs belonging
  1283.         to the particular area's link state  database.  Suppose  that  a
  1284.  
  1285.  
  1286.  
  1287. [Moy]                                                          [Page 23]
  1288.  
  1289. Internet Draft        Multicast Extensions to OSPF            March 1993
  1290.  
  1291.  
  1292.  
  1293.                                   **FROM**
  1294.  
  1295.                              |RT|RT|RT|RT|RT|RT|
  1296.                              |1 |2 |3 |4 |5 |7 |N3|
  1297.                           ----- -------------------
  1298.                           RT1|  |  |  |  |  |  |0 |
  1299.                           RT2|  |  |  |  |  |  |0 |
  1300.                           RT3|  |  |  |  |  |  |0 |
  1301.                       *   RT4|  |  |  |  |  |  |0 |
  1302.                       *   RT5|  |  |14|8 |  |  |  |
  1303.                       T   RT7|  |  |20|14|  |  |  |
  1304.                       O    N1|3 |  |  |  |  |  |  |
  1305.                       *    N2|  |3 |  |  |  |  |  |
  1306.                       *    N3|1 |1 |1 |1 |  |  |  |
  1307.                            N4|  |  |2 |  |  |  |  |
  1308.                         Ia,Ib|  |  |15|22|  |  |  |
  1309.                            N6|  |  |16|15|  |  |  |
  1310.                            N7|  |  |20|19|  |  |  |
  1311.                            N8|  |  |18|18|  |  |  |
  1312.                     N9-N11,H1|  |  |19|16|  |  |  |
  1313.                           N12|  |  |  |  |8 |2 |  |
  1314.                           N13|  |  |  |  |8 |  |  |
  1315.                           N14|  |  |  |  |8 |  |  |
  1316.                           N15|  |  |  |  |  |9 |  |
  1317.  
  1318.  
  1319.                      Figure 6: Area 1's MOSPF database.
  1320.  
  1321.              Networks and routers are represented by vertices.
  1322.              An edge of cost X connects Vertex A to Vertex B iff
  1323.              the intersection of Column A and Row B is marked
  1324.              with an X. In addition, RT1, RT2 and N3 are labelled
  1325.              with multicast group A, RT1 is labelled with multicast
  1326.              group B, and both RT3 and RT4 are labelled as
  1327.              wild-card multicast receivers.
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343. [Moy]                                                          [Page 24]
  1344.  
  1345. Internet Draft        Multicast Extensions to OSPF            March 1993
  1346.  
  1347.  
  1348.                                  **FROM**
  1349.  
  1350.                            |RT|RT|RT|RT|RT|RT|RT
  1351.                            |3 |4 |5 |6 |7 |10|11|
  1352.                         ------------------------
  1353.                         RT3|  |  |  |6 |  |  |  |
  1354.                         RT4|  |  |8 |  |  |  |  |
  1355.                         RT5|  |8 |  |6 |6 |  |  |
  1356.                         RT6|8 |  |7 |  |  |5 |  |
  1357.                         RT7|  |  |6 |  |  |  |  |
  1358.                     *  RT10|  |  |  |7 |  |  |2 |
  1359.                     *  RT11|  |  |  |  |  |3 |  |
  1360.                     T    N1|4 |4 |  |  |  |  |  |
  1361.                     O    N2|4 |4 |  |  |  |  |  |
  1362.                     *    N3|1 |1 |  |  |  |  |  |
  1363.                     *    N4|2 |3 |  |  |  |  |  |
  1364.                          Ia|  |  |  |  |  |5 |  |
  1365.                          Ib|  |  |  |7 |  |  |  |
  1366.                          N6|  |  |  |  |1 |1 |3 |
  1367.                          N7|  |  |  |  |5 |5 |7 |
  1368.                          N8|  |  |  |  |4 |3 |2 |
  1369.                   N9-N11,H1|  |  |  |  |  |  |1 |
  1370.                         N12|  |  |8 |  |2 |  |  |
  1371.                         N13|  |  |8 |  |  |  |  |
  1372.                         N14|  |  |8 |  |  |  |  |
  1373.                         N15|  |  |  |  |9 |  |  |
  1374.  
  1375.  
  1376.                  Figure 7: The backbone's MOSPF database.
  1377.  
  1378.              Networks and routers are represented by vertices.
  1379.              An edge of cost X connects Vertex A to Vertex B iff
  1380.              the intersection of Column A and Row B is marked
  1381.              with an X. In addition, RT3 and RT4 are labelled
  1382.              with both multicast groups A and B, and RT7, RT10,
  1383.              and RT11 are labelled with multicast group A.
  1384.  
  1385.         router is calculating a datagram shortest-path tree for Area  A.
  1386.         It is useful then to separate out two cases.
  1387.  
  1388.         The first case, Case 1: The source of the  datagram  belongs  to
  1389.         Area  A has already been described in Section 2.3.2. However, in
  1390.         the presence of OSPF areas, during tree  pruning  care  must  be
  1391.         taken  so that the branches leading to other areas remain, since
  1392.         it is unknown whether there are group members in these  (remote)
  1393.         areas.  For  this  reason,  only  those branches having no group
  1394.         members nor wild-card multicast receivers are pruned  when  pro-
  1395.         ducing the datagram shortest-path tree.
  1396.  
  1397.  
  1398.  
  1399. [Moy]                                                          [Page 25]
  1400.  
  1401. Internet Draft        Multicast Extensions to OSPF            March 1993
  1402.  
  1403.  
  1404.         As an example, suppose in Figure 4 that Host H2 sends  a  multi-
  1405.         cast  datagram  to  destination  Group  A.  Then  the datagram's
  1406.         shortest-path tree for Area 1, built identically by all  routers
  1407.         in  Area 1 that receive the datagram, is shown in Figure 8. Note
  1408.         that both inter-area multicast forwarders (RT3 and RT4)  are  on
  1409.         the  datagram's shortest-path tree, ensuring the delivery of the
  1410.         datagram to the backbone and from there to Areas 2 and 3.
  1411.  
  1412.         o   Case 2: The source of the datagram belongs to an area  other
  1413.             than  Area  A.  In  this  case,  when  building the datagram
  1414.             shortest-path tree for Area A, the immediate neighborhood of
  1415.             the   datagram's  source  is  unknown.  However,  there  are
  1416.             summary-link-LSAs in the Area A link state database indicat-
  1417.             ing  the  cost  of the paths between each of Area A's inter-
  1418.             area multicast forwarders and  the  datagram  source.  These
  1419.             summary  links  are  used to approximate the neighborhood of
  1420.             the datagram's source; the tree begins with  links  directly
  1421.             connecting  the  source  to each of the inter-area multicast
  1422.             forwarders. These  links  point  in  the  reverse  direction
  1423.             (towards  instead of away from the datagram source) from the
  1424.             links considered in Case 1 above. All additional links added
  1425.             to  the  tree also point in the reverse direction. The final
  1426.             datagram shortest-path tree is then produced by, as  before,
  1427.             pruning  all  branches having no group-members nor wild-card
  1428.             multicast receivers.
  1429.  
  1430.             As an example, suppose again that Host H2 in Figure 4  sends
  1431.             a  multicast datagram to destination Group A. The datagram's
  1432.             shortest-path tree for the backbone is shown  in  Figure  9.
  1433.             The  neighborhood  around  the  source (Network N4) has been
  1434.             approximated by the summary links advertised by routers  RT3
  1435.             and  RT4.  Note  that  all  links  in  Figure  9's  datagram
  1436.  
  1437.                                       o RT3 (W, origin=N4)
  1438.                                       |
  1439.                                      1|
  1440.                                       |
  1441.                               N3 (Mb) o
  1442.                                      / \
  1443.                                    0/   \0
  1444.                                    /     \
  1445.                       RT2 (Ma,Mb) o       o RT4 (W)
  1446.  
  1447.  
  1448.                     Figure 8: Datagram's shortest-path tree,
  1449.                       Area 1, source N4, destination Group A
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455. [Moy]                                                          [Page 26]
  1456.  
  1457. Internet Draft        Multicast Extensions to OSPF            March 1993
  1458.  
  1459.  
  1460.             shortest-path tree  have  arrows  pointing  in  the  reverse
  1461.             direction, towards Network N4 instead of away from it.
  1462.  
  1463.         The reverse costs used for the entire tree in Case 2 are  forced
  1464.         because  summary-link-LSAs  only  specify  the  cost towards the
  1465.         datagram source. In the presence of asymmetric link costs,  this
  1466.         may  lead  to  less  efficient routes when forwarding multicasts
  1467.         between areas.
  1468.  
  1469.         Those routers attached to multiple areas must calculate multiple
  1470.         trees  and then merge them into a single forwarding cache entry.
  1471.         As shown in Section 2.3.2, when connected to a single  area  the
  1472.         router's  position on the datagram shortest-path tree determines
  1473.         (in large part) its forwarding cache  entry.  When  attached  to
  1474.         multiple   areas,   and   hence  calculating  multiple  datagram
  1475.         shortest-path trees, each tree  contributes  to  the  forwarding
  1476.         cache  entry's list of downstream interfaces/neighbors. However,
  1477.         only one of the areas' datagram shortest-path trees will  deter-
  1478.         mine the forwarding cache entry's upstream node. When one of the
  1479.         attached areas contains the  datagram  source,  that  area  will
  1480.  
  1481.                                      o N4
  1482.                                     / \
  1483.                                   2/   \3
  1484.                                   /     \
  1485.                      RT3 (Ma,Mb) o       o RT4 (Ma,Mb)
  1486.                                 /         \
  1487.                               6/           \8
  1488.                               /             \
  1489.                          RT6 o               o RT5
  1490.                              |               |
  1491.                             5|               |6
  1492.                              |               |
  1493.                    RT10 (Ma) o               o RT7 (Ma)
  1494.                              |
  1495.                             2|
  1496.                              |
  1497.                    RT11 (Ma) o
  1498.  
  1499.  
  1500.  
  1501.                Figure 9: Datagram shortest-path tree: Backbone,
  1502.                   source N4, destination Group A. Note that
  1503.                   reverse costs (i.e., toward origin) are
  1504.                              used throughout.
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511. [Moy]                                                          [Page 27]
  1512.  
  1513. Internet Draft        Multicast Extensions to OSPF            March 1993
  1514.  
  1515.  
  1516.         determine the upstream node. Otherwise, the tiebreaking rules of
  1517.         Section 12.2.7 are invoked.
  1518.  
  1519.         Consider again the example of Host H2 in Figure 4 sending a mul-
  1520.         ticast  datagram  to destination Group A. Router RT3 will calcu-
  1521.         late two datagram shortest-path trees, one for Area  1  and  one
  1522.         for  the  backbone.   Since the source of the datagram (Host H2)
  1523.         belongs to Area 1, the Area 1 datagram shortest-path tree deter-
  1524.         mines RT3's upstream node: Network N4. Router RT3 calculates two
  1525.         downstream interfaces for the datagram: the interface to Network
  1526.         N3  (which  comes from Area 1's datagram shortest-path tree) and
  1527.         the serial line to Router RT6 (which comes from  the  backbone's
  1528.         datagram  shortest-path tree). As for Router RT10, it calculates
  1529.         two trees, determining its upstream node from the backbone  tree
  1530.         and  its  two  downstream  interfaces  from  the  Area  2  tree.
  1531.         Finally, Router RT11 calculates  three  trees,  determining  its
  1532.         upstream  node from the Area 2 tree and its downstream interface
  1533.         from the Area 3 tree.
  1534.  
  1535. 4.  Inter-AS multicasting
  1536.  
  1537.     This section explains how MOSPF deals with the forwarding of  multi-
  1538.     cast  datagrams  between  Autonomous  Systems.  Certain  AS boundary
  1539.     routers in a MOSPF system will be configured as  inter-AS  multicast
  1540.     forwarders. It is assumed that these routers will also be running an
  1541.     inter-AS multicast routing protocol.  This  specification  does  not
  1542.     dictate  the  operation of such an inter-AS multicast routing proto-
  1543.     col. However, the  following  interactions  between  MOSPF  and  the
  1544.     inter-AS routing protocol are assumed:
  1545.  
  1546.     (1) MOSPF guarantees that the  inter-AS  multicast  forwarders  will
  1547.         receive  all multicast datagrams; but it is up to each router so
  1548.         designated to determine whether the datagram should be forwarded
  1549.         to other Autonomous Systems. This determination will probably be
  1550.         made via the inter-AS routing protocol.
  1551.  
  1552.     (2) MOSPF assumes that the inter-AS routing protocol  is  forwarding
  1553.         multicast  datagrams  in  an  RPF  (reverse path forwarding; see
  1554.         [Deering] for an explanation of this  terminology)  fashion.  In
  1555.         other  words,  it  is  assumed  that  a multicast datagram whose
  1556.         source (call it X) lies outside the MOSPF domain will enter  the
  1557.         MOSPF  domain  at  those points that are advertising (into OSPF)
  1558.         the best routes back to X. MOSPF  calculates  the  path  of  the
  1559.         datagram through the MOSPF domain based on this assumption.
  1560.  
  1561.     MOSPF designates an inter-AS multicast forwarder as a wild-card mul-
  1562.     ticast  receiver  in all of its attached areas. As in the inter-area
  1563.     case, this ensures that the routers remain on all  pruned  shortest-
  1564.  
  1565.  
  1566.  
  1567. [Moy]                                                          [Page 28]
  1568.  
  1569. Internet Draft        Multicast Extensions to OSPF            March 1993
  1570.  
  1571.  
  1572.     path  trees  and thereby receive all multicast datagrams, regardless
  1573.     of destination.
  1574.  
  1575.     As an example, suppose that in Figure 1 both RT5 and RT7  were  con-
  1576.     figured  as inter-AS multicast forwarders. Then the link state data-
  1577.     base would look like the one pictured in Figure 2, with the addition
  1578.     of  a)  wild-card  status  for  RT5  and RT7 (they would appear with
  1579.     superscripts of "w") and b) the external links originated by RT5 and
  1580.     RT7 being labelled as multicast-capable[12].
  1581.  
  1582.     As another example, consider the area  configuration  in  Figure  4.
  1583.     Again  suppose RT5 and RT7 are configured as inter-AS multicast for-
  1584.     warders. Then in Area 1's link state database (Figure 6), the exter-
  1585.     nal  links  originated  by  RT5  and  RT7 would again be labelled as
  1586.     multicast-capable. However, note that in Area 1's database  RT5  and
  1587.     RT7  are  not  labelled  as  wild-card  multicast receivers. This is
  1588.     unnecessary; since Area 1's inter-area multicast forwarders (RT3 and
  1589.     RT4)  are  wild-cards,  all multicast datagrams will be forwarded to
  1590.     the backbone. And in the backbone's link state database (Figure  7),
  1591.     RT5 and RT7 will be labelled as wild-cards.
  1592.  
  1593.     4.1.  Building inter-AS datagram shortest-path trees.
  1594.  
  1595.         When multicast datagrams are to be forwarded between  Autonomous
  1596.         Systems,  the  datagram  shortest-path tree is built as follows.
  1597.         Remember that the router builds a separate tree for each area to
  1598.         which  it is attached; these trees are then merged into a single
  1599.         forwarding cache entry. Suppose that the router is building  the
  1600.         tree for Area A. We break up the tree building into three cases.
  1601.         This first two cases have already been described earlier in this
  1602.         memo: Case 1 (the source of the datagram belongs to Area A) hav-
  1603.         ing been described in Section 2.3.2 and Case 2  (the  source  of
  1604.         the datagram belongs to another OSPF area) having been described
  1605.         in Section 3.2. The only modification to  these  cases  is  that
  1606.         inter-AS  multicast  forwarders,  as  well  as group members and
  1607.         inter-area multicast  forwarders,  must  remain  on  the  pruned
  1608.         trees.  The new case is as follows:
  1609.  
  1610.         o   Case 3: The source of the datagram belongs to another  Auto-
  1611.             nomous  System.  The immediate neighborhood of the source is
  1612.             then unknown. In this case the multicast-capable AS external
  1613.             links  are  used  to  approximate  the  neighborhood  of the
  1614.             source; the tree begins with links  directly  attaching  the
  1615.             source  to  one  or  more inter-AS multicast forwarders. The
  1616.             approximating AS external links point in the reverse  direc-
  1617.             tion  (i.e.,  towards the source), just as with the approxi-
  1618.             mating summary links in Case 2. Also,  as  in  Case  2,  all
  1619.             links  included  in  the  tree  must  point  in  the reverse
  1620.  
  1621.  
  1622.  
  1623. [Moy]                                                          [Page 29]
  1624.  
  1625. Internet Draft        Multicast Extensions to OSPF            March 1993
  1626.  
  1627.  
  1628.             direction. The final datagram  shortest-path  tree  is  then
  1629.             produced  (as  always)  by  pruning those branches having no
  1630.             group members nor wild-card multicast receivers.
  1631.  
  1632.             As an example, suppose that a host on Network N12 (see  Fig-
  1633.             ure 4) originates a multicast datagram for Destination Group
  1634.             B. Assume that all external costs pictured are OSPF external
  1635.             type  1  metrics.  Then  any routers in Area 1 receiving the
  1636.             datagram would build the datagram  shortest-path  tree  pic-
  1637.             tured in Figure 10. Note that all links in the tree point in
  1638.             the reverse direction, towards the source.  The  tree  indi-
  1639.             cates  that  the  routers  expect  the datagram to enter the
  1640.             Autonomous System at Router RT7, and then to enter the  area
  1641.             at Router RT4.
  1642.  
  1643.             Note that in those cases where the "best" inter-AS multicast
  1644.             forwarder  is  not directly attached to the area, the neigh-
  1645.             borhood of the source is actually approximated by  the  con-
  1646.             catenation  of  a  summary  link  and a multicast-capable AS
  1647.             external link. This is in fact the case in Figure 10.
  1648.  
  1649.         In Case 3 (datagram source in another AS) the  requirement  that
  1650.         all  tree  links  point  in  the  reverse direction (towards the
  1651.         source) accommodates the fact that summary links and AS external
  1652.         links already point in the reverse direction. This also leads to
  1653.         the requirement that the  inter-AS  multicast  routing  protocol
  1654.         operate in a reverse path forwarding fashion (see condition 2 of
  1655.         Section 4). Note that Reverse path forwarding can lead  to  sub-
  1656.         optimal routing when costs are configured asymmetrically. And it
  1657.         can even lead to non-delivery of multicast datagrams in the case
  1658.         of asymmetric reachability.
  1659.  
  1660.         Inter-AS multicast forwarders may end up calculating a  forward-
  1661.         ing  cache entry's upstream node as being external to the AS. As
  1662.         an example, Router RT7 in Figure 10 will end up  calculating  an
  1663.         external  router  (via  its external link to Network N12) as the
  1664.         upstream node for the datagram. This means that RT7 must receive
  1665.         the  datagram  from  a router in another AS before injecting the
  1666.         datagram into the MOSPF system.
  1667.  
  1668.     4.2.  Stub area behavior
  1669.  
  1670.         AS external links are not imported into stub areas. Suppose that
  1671.         the  source  of  a particular datagram lies outside of the Auto-
  1672.         nomous System, and that the datagram is forwarded  into  a  stub
  1673.         area.  In the stub area's datagram shortest-path tree the neigh-
  1674.         borhood of the datagram's source cannot be  approximated  by  AS
  1675.         external  links.  Instead  the  neighborhood  of  the  source is
  1676.  
  1677.  
  1678.  
  1679. [Moy]                                                          [Page 30]
  1680.  
  1681. Internet Draft        Multicast Extensions to OSPF            March 1993
  1682.  
  1683.  
  1684.  
  1685.                                      o N12
  1686.                                      |
  1687.                                     2|
  1688.                                      |
  1689.                                      o RT7
  1690.                                      |
  1691.                                    14|
  1692.                                      |
  1693.                                      o RT4 (W)
  1694.                                      |
  1695.                                     0|
  1696.                                      |
  1697.                                      o N3 (Mb)
  1698.                                     /|\
  1699.                                    / | \
  1700.                                  1/  | 1\
  1701.                                  /  1|   \
  1702.                                 /    |    \
  1703.                       RT1 (Mb) o     |     o RT3 (W)
  1704.                                      o
  1705.                                 RT2 (Ma,Mb)
  1706.  
  1707.  
  1708.                Figure 10: Datagram shortest-path tree: Area 1,
  1709.                  source N12, destination Group B. Note that
  1710.                   reverse costs (i.e., toward origin) are
  1711.                              used throughout.
  1712.  
  1713.         approximated by the default summary links (see  Section  3.6  of
  1714.         [OSPF]) that are originated by the stub area's intra-area multi-
  1715.         cast forwarders.
  1716.  
  1717.         Except for this small change  to  the  construction  of  a  stub
  1718.         area's  datagram shortest-path trees, all other MOSPF algorithms
  1719.         (e.g., merging with other areas' datagram shortest-path trees to
  1720.         form  the  forwarding cache) function the same for stub areas as
  1721.         they do for non-stub areas.
  1722.  
  1723.     4.3.  Inter-AS multicasting in a core Autonomous System
  1724.  
  1725.         It may be the  case  that  the  MOSPF  routing  domain  connects
  1726.         together many different Autonomous Systems, thereby serving as a
  1727.         "core Autonomous System" (e.g, the old NSFNet backbone). In this
  1728.         case,  it  could  very  well  be  that the majority of the MOSPF
  1729.         routers are also  inter-AS  multicast  forwarders.  Having  each
  1730.         inter-AS  multicast  forwarder  then  declare itself a wild-card
  1731.         multicast receiver could very well  waste  considerable  network
  1732.  
  1733.  
  1734.  
  1735. [Moy]                                                          [Page 31]
  1736.  
  1737. Internet Draft        Multicast Extensions to OSPF            March 1993
  1738.  
  1739.  
  1740.         bandwidth.  However,  as  an alternative to declaring themselves
  1741.         wild-card multicast receivers, the  inter-AS  multicast  routers
  1742.         could  instead  explicitly  advertise  all groups that they were
  1743.         interested in forwarding (to other "client" Autonomous  Systems)
  1744.         in  group-membership-LSAs. These advertised groups would have to
  1745.         be learned through an inter-AS multicast  routing  protocol  (or
  1746.         possibly even statically configured).
  1747.  
  1748.         This in essence allows the clients of the core Autonomous System
  1749.         to  advertise  their  group  membership  into the core. However,
  1750.         since any client MOSPF domains will still  have  their  inter-AS
  1751.         multicast   forwarders   configured   as   wild-card   multicast
  1752.         receivers, this advertisement will be asymmetric: the core  will
  1753.         not  advertise  its  or others' group membership to the clients.
  1754.         The achieves the same inter-AS  multicast  routing  architecture
  1755.         that MOSPF uses for inter-area multicast routing (see Figure 5).
  1756.  
  1757. 5.  Modelling internal group membership
  1758.  
  1759.     A MOSPF router may itself contain multicast applications. A  typical
  1760.     example  of  this  is a UNIX workstation that doubles as a multicast
  1761.     router. This section concerns two alternative ways  of  representing
  1762.     the  group  membership  of the MOSPF router's internal applications.
  1763.     Both representations have advantages. For maximum  flexibility,  the
  1764.     MOSPF  forwarding  algorithm  (see Section 11) has been specified so
  1765.     that either representation can be used in a  MOSPF  router  (and  in
  1766.     fact,  both  representations  can  be used at once, depending on the
  1767.     application).
  1768.  
  1769.     The first representation is based on the paradigm presented  in  RFC
  1770.     1112. In this case, an application joins a multicast group on one or
  1771.     more specific physical interfaces. The application then  receives  a
  1772.     multicast  datagram  if  and  only  if  it is received on one of the
  1773.     specified interfaces. If a datagram is received on  multiple  speci-
  1774.     fied interfaces, the application receives multiple copies. Figure 11
  1775.     shows this algorithm as it is implemented  in  (modified)  BSD  UNIX
  1776.     kernels.   The  figure shows the processing of a multicast datagram,
  1777.     starting with its reception on a particular interface. First  copies
  1778.     of  the datagram are given to those applications that have joined on
  1779.     the receiving interface. Then the forwarding decision (pictured as a
  1780.     box  containing  a question mark) is made, and the packet is (possi-
  1781.     bly) forwarded out certain interfaces. If these interfaces  are  not
  1782.     capable  of  receiving  their own multicasts, a copy of the datagram
  1783.     must be internally looped back to appropriately joined applications.
  1784.  
  1785.     The advantages to the RFC 1112 representation are as follows:
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791. [Moy]                                                          [Page 32]
  1792.  
  1793. Internet Draft        Multicast Extensions to OSPF            March 1993
  1794.  
  1795.  
  1796.  
  1797.                             +-------+
  1798.                             |receive|
  1799.                             +-------+
  1800.                                 |
  1801.                                 |---> To application
  1802.                                 |
  1803.                       +-------------------+
  1804.                       |forwarding decision|
  1805.                       +-------------------+
  1806.                                 |
  1807.                                / \
  1808.                               /---\----> To application
  1809.                              /     \------> To application
  1810.                             /       \
  1811.                            /         \
  1812.                      +--------+  +--------+
  1813.                      |transmit|  |transmit|
  1814.                      +--------+  +--------+
  1815.  
  1816.  
  1817.               Figure 11: RFC 1112 representation of internal
  1818.                           group membership
  1819.  
  1820.     o   It is the standard for  the  way  an  IP  host  joins  multicast
  1821.         groups.  It  is  simplest  to  use the same membership model for
  1822.         hosts and routers; most would consider an IP router to be a spe-
  1823.         cial case of an IP host anyway.
  1824.  
  1825.     o   It is the way group membership has been implemented in BSD UNIX.
  1826.         Existing  multicast  applications  are written to join multicast
  1827.         groups on specific interfaces.
  1828.  
  1829.     o   The  possibility  of  receiving  multiple  datagram  copies  may
  1830.         improve  fault  tolerance.  If the datagram is dropped due to an
  1831.         error on the path to some interface, another interface may still
  1832.         receive a copy.
  1833.  
  1834.     o   The ability to specify  a  particular  receiving  interface  may
  1835.         improve  the  accuracy  of  IP multicast's expanding ring search
  1836.         mechanism (see Section 2.3.4).
  1837.  
  1838.     o   Membership in the non-routable  multicast  groups  (224.0.0.1  -
  1839.         224.0.0.255)  must  be  on a per-interface basis. An OSPF router
  1840.         always belongs to 224.0.0.5 (AllSPFRouters) on its  OSPF  inter-
  1841.         faces,  and may belong to 224.0.0.6 (AllDRouters) on one or more
  1842.         of its OSPF interfaces.
  1843.  
  1844.  
  1845.  
  1846.  
  1847. [Moy]                                                          [Page 33]
  1848.  
  1849. Internet Draft        Multicast Extensions to OSPF            March 1993
  1850.  
  1851.  
  1852.     The second representation is MOSPF-specific. In this case, an appli-
  1853.     cation  joins  a  multicast group on an interface-independent basis.
  1854.     In other words, group membership is associated with the router as  a
  1855.     whole,  not  separately  on  each  interface.  The  application then
  1856.     receives a copy of a multicast datagram if and only if the  datagram
  1857.     would actually be forwarded by the MOSPF router. Figure 12 shows how
  1858.     this algorithm would be implemented. The datagram is received  on  a
  1859.     particular  interface.  If  the datagram is validated for forwarding
  1860.     (i.e., the receiving interface connects to the  matching  forwarding
  1861.     cache  entry's  upstream node), a copy of the datagram is also given
  1862.     to appropriately joined applications. Note that this model of  group
  1863.     membership  is  not as general as the RFC 1112 model, in that it can
  1864.     only be implemented in MOSPF routers and not in arbitrary IP  hosts.
  1865.     However, it has the following advantages:
  1866.  
  1867.     o   The application does not need to have knowledge  of  the  router
  1868.         interfaces.  It  does  not  need  to  know what kind or how many
  1869.         interfaces there are; this will be taken care of  by  the  MOSPF
  1870.         protocol itself.
  1871.  
  1872.     o   As long as any interface is operational,  the  application  will
  1873.         continue  to receive multicast datagrams. This happens automati-
  1874.         cally, without the application modifying its group membership.
  1875.  
  1876.                             +-------+
  1877.                             |receive|
  1878.                             +-------+
  1879.                                 |
  1880.                                 |
  1881.                                 |
  1882.                       +-------------------+
  1883.                       |forwarding decision|---> to application
  1884.                       +-------------------+
  1885.                                 |
  1886.                                / \
  1887.                               /   \
  1888.                              /     \
  1889.                             /       \
  1890.                            /         \
  1891.                      +--------+  +--------+
  1892.                      |transmit|  |transmit|
  1893.                      +--------+  +--------+
  1894.  
  1895.  
  1896.               Figure 12: MOSPF-specific representation of internal
  1897.                              group membership
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903. [Moy]                                                          [Page 34]
  1904.  
  1905. Internet Draft        Multicast Extensions to OSPF            March 1993
  1906.  
  1907.  
  1908.     o   The application receives only one copy of  the  datagram.  Using
  1909.         the  RFC1112  representation,  whenever  an application joins on
  1910.         more than one interface (which must be done if  the  application
  1911.         does  not want to rely on a single interface), multiple datagram
  1912.         copies will be received during normal operation.
  1913.  
  1914. 6.  Additional capabilities
  1915.  
  1916.     This section describes the MOSPF configuration  options  that  allow
  1917.     routers  of  differing capabilities to be mixed together in the same
  1918.     routing domain. Note that these options handle special circumstances
  1919.     that  may not be encountered in normal operation. Default values for
  1920.     the configuration settings are specified in Appendix B.
  1921.  
  1922.     6.1.  Mixing with non-multicast routers
  1923.  
  1924.         MOSPF routers can be mixed freely with routers that are  running
  1925.         only  the  base  OSPF algorithm (called non-multicast routers in
  1926.         the following). This allows MOSPF to be deployed in a  piecemeal
  1927.         fashion,  thereby  speeding deployment and allowing experimenta-
  1928.         tion with multicast routing on a limited scale.
  1929.  
  1930.         When a MOSPF router builds a  datagram  shortest-path  tree,  it
  1931.         omits  all  non-multicast  routers. For example, in Figure 1, if
  1932.         Router RT6 was not a multicast router,  the  datagram  shortest-
  1933.         path  tree  in  Figure  3  would be built with a more circuitous
  1934.         branch through Router RT5, instead of  through  Router  RT6.  In
  1935.         addition, non-multicast routers do not participate in the flood-
  1936.         ing of the new group-membership-LSAs. This adheres to  the  gen-
  1937.         eral  principle  that  a  router should not have to handle those
  1938.         link state advertisements whose format (or contents) the  router
  1939.         does not understand.
  1940.  
  1941.         Mixing MOSPF routers with non-multicast routers creates a number
  1942.         of  potential  problems.  Certain  mixings  of  MOSPF  and  non-
  1943.         multicast routers can cause multicast datagrams to  take  subop-
  1944.         timal  paths,  or in other cases can lead to the non-delivery of
  1945.         multicast datagrams. In addition, mixing MOSPF routers and  non-
  1946.         multicast  routers can cause the paths of multicast datagrams to
  1947.         diverge radically from  the  path  of  unicast  datagrams.  Such
  1948.         divergences can make routing problems harder to debug.
  1949.  
  1950.         In particular, the following  specific  difficulties  may  arise
  1951.         when mixing MOSPF routers with non-multicast routers:
  1952.  
  1953.         o   Even though there is unicast connectivity to a  destination,
  1954.             there  may  not  be  multicast connectivity. For example, if
  1955.             Router RT10 in Figure 1 becomes a non-multicast router,  the
  1956.  
  1957.  
  1958.  
  1959. [Moy]                                                          [Page 35]
  1960.  
  1961. Internet Draft        Multicast Extensions to OSPF            March 1993
  1962.  
  1963.  
  1964.             group member connected to Network N11 will no longer be able
  1965.             to receive multicasts sourced by Host H2.  But the two hosts
  1966.             will be able to exchange unicasts (e.g., ICMP pings).
  1967.  
  1968.         o   When the Designated Router for a multi-access network  is  a
  1969.             non-multicast  router, the network will not be used for for-
  1970.             warding multicast datagrams. For example,  if  in  Figure  1
  1971.             Router  RT4  is Designated Router for Network N3, and RT4 is
  1972.             non-multicast, Network N3 will not be  used  to  forward  IP
  1973.             multicasts.  This  would  mean that multicast datagrams ori-
  1974.             ginated by Hosts H2 and H3 would  not  be  forwarded  beyond
  1975.             their  local  network  (N4),  even  though it seems that the
  1976.             needed multicast connectivity exists.
  1977.  
  1978.         o   When forwarding multicast datagrams between areas, mixing of
  1979.             MOSPF  routers  and non-multicast routers in the source area
  1980.             may cause unexpected loss of multicast connectivity. This is
  1981.             because in the inter-area routing of multicast datagrams the
  1982.             neighborhood of the datagram's  source  is  approximated  by
  1983.             OSPF  summary links, and OSPF summary-link-LSAs do not carry
  1984.             indications/guarantees of the  summarized  path's  multicast
  1985.             routing capability.
  1986.  
  1987.     6.2.  TOS-based multicast
  1988.  
  1989.         MOSPF allows a separate datagram shortest-path tree to be  built
  1990.         for  each IP Type of Service. This means that the path of a mul-
  1991.         ticast datagram can vary depending on the datagram's  TOS  clas-
  1992.         sification, as well as its source and destination.
  1993.  
  1994.         For each router interface, OSPF allows a separate metric  to  be
  1995.         configured for each IP TOS. When building the shortest path tree
  1996.         for TOS X, the cost of a path is the sum of the component inter-
  1997.         faces'  TOS  X  metrics.  Note  that  OSPF requires that a TOS 0
  1998.         metric be specified for each interface. However, as  a  form  of
  1999.         data  compression,  metrics  need only be specified for non-zero
  2000.         TOS if they are different than the TOS 0 metric.
  2001.  
  2002.         Additionally, OSPF routers can be configured to ignore TOS  when
  2003.         forwarding  packets.  Such  routers, called TOS-incapable, build
  2004.         only the TOS 0  portion  of  the  routing  table.  TOS-incapable
  2005.         routers  can  be mixed freely with TOS-capable routers when for-
  2006.         warding unicast packets. The way this  is  handled  for  unicast
  2007.         packets  is  that the unicast is forwarded along the TOS 0 route
  2008.         whenever the TOS X route does not  exist.  However,  MOSPF  must
  2009.         treat  this  situation  somewhat  differently, since each router
  2010.         must build the exact same tree rooted at the datagram's source.
  2011.  
  2012.  
  2013.  
  2014.  
  2015. [Moy]                                                          [Page 36]
  2016.  
  2017. Internet Draft        Multicast Extensions to OSPF            March 1993
  2018.  
  2019.  
  2020.         Like OSPF, MOSPF allows TOS-based routing to be  optional.  TOS-
  2021.         capable  and TOS-incapable multicast routers can be mixed freely
  2022.         in the routing domain.  TOS-incapable  routers  will  only  ever
  2023.         build  TOS  0  datagram shortest-path trees. TOS-capable routers
  2024.         will first build TOS 0 datagram shortest-path  trees.  If  these
  2025.         trees  contain  only TOS-capable routers, datagram shortest-path
  2026.         trees are then built separately for non-zero TOS values.  Other-
  2027.         wise,  the  TOS 0 datagram shortest-path tree is used to forward
  2028.         all traffic, regardless of  its  TOS  designation.   Using  this
  2029.         logic,  all  routers  in  essence  continue to utilize identical
  2030.         datagram  shortest-path  trees.  See  Section  12.2.8  for  more
  2031.         details.
  2032.  
  2033.     6.3.  Assigning multiple IP networks to a physical network
  2034.  
  2035.         Assigning multiple IP networks/subnets to a single physical net-
  2036.         work  causes some confusion in MOSPF. This is because the under-
  2037.         lying OSPF protocol treats these IP networks/subnets as entirely
  2038.         separate  entities,  originating  separate network-LSAs for each
  2039.         and forming separate adjacencies for each, while IGMP recognizes
  2040.         only the single underlying physical network. Adding to the prob-
  2041.         lem is the fact that when a multicast datagram is received  from
  2042.         such a multiply-addressed physical wire, there is no good way to
  2043.         choose the datagram's upstream node (which must be done in order
  2044.         to make the forwarding decision; see Section 11 for details). As
  2045.         a result, unless this situation is dealt with through configura-
  2046.         tion, unwanted replication of multicast datagrams may occur when
  2047.         they are forwarded over multiply-addressed wires.
  2048.  
  2049.         As a remedy, MOSPF allows multicast forwarding to be disabled on
  2050.         certain  IP  networks/subnets. When multicast forwarding is dis-
  2051.         abled on the wire's "extra" subnets (i.e.,  all  but  one),  the
  2052.         extra  subnets  will not appear in datagram shortest-path trees,
  2053.         nor will they appear in local group database or forwarding cache
  2054.         entries.  As  a  result,  the  possibility  of unwanted datagram
  2055.         replication is eliminated. The  actual  disabling  of  multicast
  2056.         forwarding  on a subnet is done through setting the IPMulticast-
  2057.         Forwarding parameter to disabled on all router  interfaces  con-
  2058.         necting to the subnet (see Section B.2).
  2059.  
  2060.     6.4.  Networks on Autonomous System boundaries
  2061.  
  2062.         Another complication can arise on IP networks/subnets  that  lie
  2063.         on  the  boundary  of  a MOSPF Autonomous System. Similar to the
  2064.         unicast situation where these networks may be  running  multiple
  2065.         IGPs  (Interior  Gateway  Protocols), these networks may also be
  2066.         running multiple multicast routing protocols. It may then become
  2067.         impossible  for  a MOSPF router to determine whether a multicast
  2068.  
  2069.  
  2070.  
  2071. [Moy]                                                          [Page 37]
  2072.  
  2073. Internet Draft        Multicast Extensions to OSPF            March 1993
  2074.  
  2075.  
  2076.         datagram is being forwarded  along  the  datagram  shortest-path
  2077.         tree,  or  whether  it  has been inadvertently received from the
  2078.         other Autonomous System.  Guessing  wrong  can  lead  to  either
  2079.         unwanted  replication or non-delivery of the multicast datagram.
  2080.         In addition, in order to prevent receiving  duplicate  multicast
  2081.         datagrams,  group  members on these boundary networks will prob-
  2082.         ably want to declare their membership to one  Autonomous  System
  2083.         and not another.
  2084.  
  2085.         For example, consider the two  Autonomous  Systems  pictured  in
  2086.         Figure 13. Network X is on the boundary of both ASes. One possi-
  2087.         ble multicast datagram path is shown; the datagram originates in
  2088.         a  third  Autonomous System, and is then delivered to both AS #1
  2089.         and AS #2 separately. The paths through the two Autonomous  Sys-
  2090.         tems  may end up having certain boundary networks as common seg-
  2091.         ments. In Figure 13, Network X is common to both paths. In  this
  2092.         case,  if  both Autonomous Systems were running (separate copies
  2093.         of) MOSPF, the same datagram would appear twice on Network X  as
  2094.         a  data-link  multicast. This would cause duplicate datagrams to
  2095.         be received by any group members on Network X or downstream from
  2096.         Network X.
  2097.  
  2098.         MOSPF has two mechanisms to eliminate this replication of multi-
  2099.         cast datagrams. First, a system administrator can configure cer-
  2100.         tain  networks  to  forward  multicast  datagrams  as  data-link
  2101.  
  2102.                               <-Datagram path->*
  2103.                              *                 *
  2104.                              *                 *
  2105.                              *            .....*.........
  2106.                     .........*.....   |   .    *    AS #2
  2107.                     AS #1    *    .   |*****+---+
  2108.                             +---+*****|*----|RTC|
  2109.                             |RTA|----*|*  . +---+
  2110.                             +---+ .  *|*  .
  2111.                                   .  *|*  .
  2112.                                   .  *|*  . +---+
  2113.                             +---+ .  *|*----|RTD|
  2114.                             |RTB|----*|*****+---+
  2115.                             +---+*****|   .....*..........
  2116.                     .........*....    |        *
  2117.                              *        |        *
  2118.                              *    Network X    *
  2119.                              *
  2120.  
  2121.                      Figure 13: Networks on AS boundaries
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127. [Moy]                                                          [Page 38]
  2128.  
  2129. Internet Draft        Multicast Extensions to OSPF            March 1993
  2130.  
  2131.  
  2132.         unicasts instead of data-link multicasts. This is done  by  set-
  2133.         ting the IPMulticastForwarding parameter to data-link unicast on
  2134.         those router interfaces attaching to the  network  (see  Section
  2135.         B.2).  As an example, in Figure 13 the routers in AS #2 could be
  2136.         configured so that Router C would send  the  multicast  datagram
  2137.         out  onto Network X as a data-link unicast addressed directly to
  2138.         Router D. Router D would  accept  this  data-link  unicast,  but
  2139.         would reject any data-link multicast forwarded by Router A. This
  2140.         would eliminate replication of  multicast  datagrams  downstream
  2141.         from Network X. In addition, if the IPMulticastForwarding param-
  2142.         eter is set to data-link unicast on Network X, group  membership
  2143.         will  not  be  monitored on the network. This will prevent group
  2144.         members attached directly to Network X from  receiving  multiple
  2145.         datagram  copies, since group membership on the boundary network
  2146.         will be monitored from only one AS (AS #1 in our example).
  2147.  
  2148.         It should be noted that forwarding IP  multicasts  as  data-link
  2149.         unicasts has some disadvantages when three or more MOSPF routers
  2150.         are attached to the network. First of all, it is more work for a
  2151.         router  to  send  multiple  unicasts  than  a  single multicast.
  2152.         Second, the multiple unicasts  consume  more  network  bandwidth
  2153.         than  a  single  multicast. And last, it increases the delay for
  2154.         some group members since multiple unicasts also take  longer  to
  2155.         send than a single multicast.
  2156.  
  2157.     6.5.   Recommended system configuration
  2158.  
  2159.         In order to make MOSPF's selection of routes  more  predictable,
  2160.         it  is  recommended that all routers in any particular OSPF area
  2161.         have the same multicast and TOS capabilities.Keeping areas homo-
  2162.         geneous ensures that IP multicast packets will follow relatively
  2163.         the same path as IP unicasts. In contrast,  while  heterogeneous
  2164.         areas  will  function,  and  will probably be necessary at least
  2165.         during the initial introduction of multicast routing, such areas
  2166.         may  produce  seemingly  sub-optimal  and unexpected routes. For
  2167.         example, see Section 6.1 above for a detailed description of the
  2168.         possible   pitfalls  when  mixing  multicast  and  non-multicast
  2169.         routers.
  2170.  
  2171.         As for the other options presented above, to  achieve  the  most
  2172.         predictable  results it is recommended that a router interface's
  2173.         IPMulticastForwarding parameter be set to  a  value  other  than
  2174.         data-link  multicast  only  when  either a) multiple IP networks
  2175.         have been assigned to a single physical wire or b) multiple mul-
  2176.         ticast routing protocols are running on the attached network.
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183. [Moy]                                                          [Page 39]
  2184.  
  2185. Internet Draft        Multicast Extensions to OSPF            March 1993
  2186.  
  2187.  
  2188. 7.  Basic implementation requirements
  2189.  
  2190.     An implementation of MOSPF requires the following pieces  of  system
  2191.     support.  Note that this support is in addition to that required for
  2192.     the base OSPF implementation as outlined in Section 4.4 of [OSPF].
  2193.  
  2194.     o   Promiscuous multicast reception. In a multicast  router,  it  is
  2195.         necessary  to  receive all IP multicasts at the data-link level.
  2196.         On those interfaces where IP multicast  datagrams  are  encapsu-
  2197.         lated  by  a  wide  range  of  data-link  multicast  destination
  2198.         addresses (e.g, ethernet and FDDI), this is most  easily  accom-
  2199.         plished  by disabling any hardware filtering of multicast desti-
  2200.         nations  (i.e.,  by  "opening  up"  the  interface's   multicast
  2201.         filter).
  2202.  
  2203.     o   Data-link  multicast/broadcast  detection.  To  avoid   unwanted
  2204.         replication of multicast datagrams in certain exceptional condi-
  2205.         tions, it is necessary for the  multicast  router  to  determine
  2206.         whether    a    datagram    was    received   as   a   data-link
  2207.         multicast/broadcast or as a data-link unicast, for later use  by
  2208.         the  MOSPF  forwarding  mechanism.   See  Section  6.4  for more
  2209.         details.
  2210.  
  2211.     o   An implementation of IGMP. MOSPF uses the Internet Group Manage-
  2212.         ment Protocol (IGMP, documented in [RFC 1112]) to monitor multi-
  2213.         cast group membership. See Section 9 for details.
  2214.  
  2215. 8.  Protocol data structures
  2216.  
  2217.     The MOSPF protocol is described herein in terms of its operation  on
  2218.     various protocol data structures. These data structures are included
  2219.     for explanatory uses only, and are not intended to constrain a MOSPF
  2220.     implementation.  Besides  the  data  structures  listed  below, this
  2221.     specification will also reference the various data structures (e.g.,
  2222.     OSPF interfaces and neighbors) defined in [OSPF].
  2223.  
  2224.     In a MOSPF router, the following items are added to the list of glo-
  2225.     bal OSPF data structures described in Section 5 of [OSPF]:
  2226.  
  2227.     o   Local group database. This database describes the group  member-
  2228.         ship  on  all  attached  networks for which the router is either
  2229.         Designated Router or Backup  Designated  Router.  This  in  turn
  2230.         determines  the  group-membership-LSAs that the router will ori-
  2231.         ginate, and the local delivery of multicast datagrams (see  Sec-
  2232.         tions 2.3.1 and 10).
  2233.  
  2234.     o   Forwarding cache. Each entry in the forwarding  cache  describes
  2235.         the  path  of  a  multicast datagram having a particular [source
  2236.  
  2237.  
  2238.  
  2239. [Moy]                                                          [Page 40]
  2240.  
  2241. Internet Draft        Multicast Extensions to OSPF            March 1993
  2242.  
  2243.  
  2244.         net,  multicast  destination,  TOS]  combination.  These   cache
  2245.         entries  are calculated when building the datagram shortest-path
  2246.         trees. See Sections 2.3.4 and 11 for more details.
  2247.  
  2248.     o   Multicast routing capability. Indicates whether  the  router  is
  2249.         running  the multicast extensions defined in this memo. A router
  2250.         running the multicast extensions must still run  the  base  OSPF
  2251.         algorithm as set forth in [OSPF]. Such a router will continue to
  2252.         interoperate with non-multicast-capable OSPF routers  when  for-
  2253.         warding IP unicast traffic.
  2254.  
  2255.     o   Inter-area multicast forwarder.  Indicates  whether  the  router
  2256.         will forward IP multicasts from one OSPF area to another. Such a
  2257.         router declares itself a wild-card  multicast  receiver  in  its
  2258.         non-backbone  area router-LSAs (see Section 14.6), and also sum-
  2259.         marizes its attached areas' group membership to the backbone  in
  2260.         group-membership-LSAs.   When   building   inter-area   datagram
  2261.         shortest-path trees, it is these routers that appear immediately
  2262.         adjacent  to  the  datagram  source at the root of the tree (see
  2263.         Section 3.2). Not all multicast-capable area border routers need
  2264.         be configured as inter-area multicast forwarders. However, when-
  2265.         ever both ends of a virtual  link  are  multicast-capable,  they
  2266.         must  both be configured as inter-area multicast forwarders (see
  2267.         Section 14.11).
  2268.  
  2269.     o   Inter-AS multicast forwarder. Indicates whether the router  will
  2270.         forward  IP multicasts between Autonomous Systems. Such a router
  2271.         declares itself a wild-card multicast receiver  in  its  router-
  2272.         LSAs  (see  Section  14.6). These routers are also assumed to be
  2273.         running some kind of inter-AS multicast protocol. They mark  all
  2274.         external  routes  that  they  import  into the OSPF domain as to
  2275.         whether they provide multicast connectivity (see Section  14.9).
  2276.         When  building  inter-AS  multicast  datagram trees, it is these
  2277.         routers that appear immediately adjacent to the datagram  source
  2278.         at the root of the tree.
  2279.  
  2280.     8.1.  Additions to the OSPF area structure
  2281.  
  2282.         The OSPF area data  structure  is  described  in  Section  6  of
  2283.         [OSPF].  In  a  MOSPF router, the following item is added to the
  2284.         OSPF area structure:
  2285.  
  2286.         o   List of group-membership-LSAs. These link  state  advertise-
  2287.             ments  describe  the  location of the area's multicast group
  2288.             members.  Group-membership-LSAs  are  flooded  throughout  a
  2289.             single  area  only. Area border routers also summarize their
  2290.             attached areas' membership by originating  group-membership-
  2291.             LSAs  into  the  backbone  area.  For  more information, see
  2292.  
  2293.  
  2294.  
  2295. [Moy]                                                          [Page 41]
  2296.  
  2297. Internet Draft        Multicast Extensions to OSPF            March 1993
  2298.  
  2299.  
  2300.             Sections 3.1 and 10.
  2301.  
  2302.     8.2.  Additions to the OSPF interface structure
  2303.  
  2304.         The OSPF interface  structure  is  described  in  Section  9  of
  2305.         [OSPF].  In a MOSPF router, the following items are added to the
  2306.         OSPF interface structure. Note  that  the  IPMulticastForwarding
  2307.         parameter  is  really  a description of the attached network. As
  2308.         such,  it  should  be  configured  identically  on  all  routers
  2309.         attached  to  a  common  network; otherwise incorrect routing of
  2310.         multicast datagrams may result[13].
  2311.  
  2312.         o   IPMulticastForwarding. This configurable parameter indicates
  2313.             whether  IP multicasts should be forwarded over the attached
  2314.             network, and if so, how the forwarding should be  done.  The
  2315.             parameter can assume one of three possible values: disabled,
  2316.             data-link multicast and data-link unicast. When set to  dis-
  2317.             abled,  IP multicast datagrams will not be forwarded out the
  2318.             interface. When set to  data-link  multicast,  IP  multicast
  2319.             datagrams  will  be  forwarded as data-link multicasts. When
  2320.             set to data-link unicast, IP  multicast  datagrams  will  be
  2321.             forwarded  as data-link unicasts. The default value for this
  2322.             parameter is data-link multicast. The other two settings are
  2323.             for  use  in the special circumstances described in Sections
  2324.             6.3 and 6.4. When set to disabled or to  data-link  unicast,
  2325.             IGMP  group membership is not monitored on the attached net-
  2326.             work.
  2327.  
  2328.         o   IGMPPollingInterval. When the router is actively  monitoring
  2329.             group  membership  on  the attached network, it periodically
  2330.             sends IGMP Host Membership Queries. IGMPPollingInterval is a
  2331.             configurable  parameter  indicating  the  number  of seconds
  2332.             between IGMP Host Membership Queries.  The  router  actively
  2333.             monitors  group membership on the attached network when both
  2334.             a) the interface's IPMulticastForwarding parameter is set to
  2335.             data-link  multicast  and  b)  the  router  has been elected
  2336.             Designated Router on the attached network. See Section 9 for
  2337.             details.
  2338.  
  2339.         o   IGMPTimeout.  This  configurable  parameter  indicates   the
  2340.             length  of  time  (in  seconds)  that a local group database
  2341.             entry associated with this interface  will  persist  without
  2342.             another matching IGMP Host Membership Report being received.
  2343.             See Section 9 for details.
  2344.  
  2345.         o   IGMP polling timer. The firing of this interval timer causes
  2346.             an  IGMP Host Membership Query to be sent out the interface.
  2347.             The length of  this  timer  is  the  configurable  parameter
  2348.  
  2349.  
  2350.  
  2351. [Moy]                                                          [Page 42]
  2352.  
  2353. Internet Draft        Multicast Extensions to OSPF            March 1993
  2354.  
  2355.  
  2356.             IGMPPollingInterval. See Section 9 for details.
  2357.  
  2358.     8.3.  Additions to the OSPF neighbor structure
  2359.  
  2360.         The OSPF neighbor structure is defined in Section 10 of  [OSPF].
  2361.         In  a  MOSPF  router,  the following items are added to the OSPF
  2362.         neighbor structure:
  2363.  
  2364.         o   Neighbor Options. This field was already defined in the OSPF
  2365.             specification. However, in MOSPF there is a new option which
  2366.             indicates the  neighbor's  multicast  capability.  This  new
  2367.             option  is  learned in the Database Exchange process through
  2368.             reception of the neighbor's  Database  Description  packets,
  2369.             and  determines whether group-membership-LSAs are flooded to
  2370.             the neighbor. See the items concerning flooding  in  Section
  2371.             14 for a more detailed explanation.
  2372.  
  2373.     8.4.  The local group database
  2374.  
  2375.         The local group database has already been introduced in  Section
  2376.         2.3.1.   The current section attempts a more precise definition.
  2377.         The local group database tracks  the  group  membership  of  the
  2378.         router's   directly  attached  networks.  Database  entries  are
  2379.         created and maintained by the IGMP  protocol.  Database  entries
  2380.         can  cause group-membership-LSAs to be originated, which in turn
  2381.         enable the pruning of datagram shortest-path  trees.  The  local
  2382.         group database also dictates the router's responsibility for the
  2383.         delivery of  multicast  datagrams  to  directly  attached  group
  2384.         members.
  2385.  
  2386.         Each entry in the local group database has three components: the
  2387.         multicast  group,  the  attached  network and the entry's age. A
  2388.         database entry is indexed by the first two components: multicast
  2389.         group  and  attached  network.  A  database  lookup  function is
  2390.         assumed to exist, so that given  a  [multicast  group,  attached
  2391.         network]  pair,  the  matching  database  entry  (if any) can be
  2392.         discovered. A database entry for [Group A, Network N1] exists if
  2393.         and  only if there are Group A members currently located on Net-
  2394.         work N1.
  2395.  
  2396.         The three components of a local group database entry are defined
  2397.         as follows:
  2398.  
  2399.         o   MulticastGroup. The multicast group whose members are  being
  2400.             tracked  by  this entry. Each multicast group is represented
  2401.             as a class D IP address.  For  the  semantics  of  multicast
  2402.             group membership, see [RFC 1112].
  2403.  
  2404.  
  2405.  
  2406.  
  2407. [Moy]                                                          [Page 43]
  2408.  
  2409. Internet Draft        Multicast Extensions to OSPF            March 1993
  2410.  
  2411.  
  2412.         o   AttachedNetwork. Each database entry is concerned  with  the
  2413.             group members belonging to a single attached network. To get
  2414.             a complete picture of the local group membership  (when  for
  2415.             example  building  a group-membership-LSA), it may be neces-
  2416.             sary to consult multiple  database  entries,  one  for  each
  2417.             attached  network.  Note  that  a router is only required to
  2418.             maintain entries for those attached networks  on  which  the
  2419.             router  has  been elected Designated Router or Backup Desig-
  2420.             nated Router (see Section 9).
  2421.  
  2422.         o   Age. Indicates the number of  seconds  since  an  IGMP  Host
  2423.             Membership  Report  for  multicast  Group A has been seen on
  2424.             Network N1. If the age field hits  Network  N1's  configured
  2425.             IGMPTimeout value, the local group database entry is removed
  2426.             (i.e., the entry has "aged out"). See Sections 9.2  and  9.3
  2427.             for more information.
  2428.  
  2429.     8.5.  The forwarding cache
  2430.  
  2431.         The forwarding cache has already been defined  in  Section  2.3.
  2432.         The  current  section  attempts  a more precise definition. Each
  2433.         entry in the forwarding cache indicates how a multicast datagram
  2434.         having  a  particular  [source  network,  destination  multicast
  2435.         group, IP TOS] will be forwarded. A forwarding  cache  entry  is
  2436.         built on demand from the local group database and the datagram's
  2437.         shortest-path tree. For more details, consult Sections 2.3.4 and
  2438.         12.
  2439.  
  2440.         Each entry in the forwarding cache has six components: the  mul-
  2441.         ticast  datagram's  source  network,  the  destination multicast
  2442.         group, the IP TOS, the upstream node,  the  list  of  downstream
  2443.         interfaces and (possibly) a list of downstream neighbors. A for-
  2444.         warding cache entry is indexed by  source  network,  destination
  2445.         multicast  group  and  IP  TOS.  A lookup function is assumed to
  2446.         exist, so that given a multicast datagram with a particular  [IP
  2447.         source,  destination  multicast group, IP TOS], a matching cache
  2448.         entry (if any) can be found.
  2449.  
  2450.         The six components of a forwarding cache entry  are  defined  as
  2451.         follows:
  2452.  
  2453.         o   Source network. The datagram's source network  is  described
  2454.             by  a  network/subnet/supernet  number and its corresponding
  2455.             mask. The source network for a datagram is discovered via  a
  2456.             routing  table/database  lookup  of the datagram's IP source
  2457.             address, as described in Section 11.2.
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463. [Moy]                                                          [Page 44]
  2464.  
  2465. Internet Draft        Multicast Extensions to OSPF            March 1993
  2466.  
  2467.  
  2468.         o   Destination multicast group. The destination group to  which
  2469.             matching datagrams are being forwarded. For the semantics of
  2470.             multicast group membership, see [RFC 1112].
  2471.  
  2472.         o   IP TOS.  The  IP  Type  of  Service  specified  by  matching
  2473.             datagrams.  Note that this means that the path of the multi-
  2474.             cast datagram depends on its TOS classification.
  2475.  
  2476.         o   Upstream node. The attached network/neighboring router  from
  2477.             which the datagram must be received. If received from a dif-
  2478.             ferent attached  network/neighboring  router,  the  matching
  2479.             datagram  is  dropped  instead  of  forwarded. This prevents
  2480.             unwanted replication of multicast datagrams. It is  possible
  2481.             that  the  upstream node is unspecified (i.e., set to NULL).
  2482.             In this case, matching datagrams will always be dropped,  no
  2483.             matter  where  they  are  received from. It is also possible
  2484.             that the upstream  node  is  specified  as  the  placeholder
  2485.             EXTERNAL. This means that the datagram must be received on a
  2486.             non-MOSPF interface in order to be forwarded.
  2487.  
  2488.         o   List of downstream interfaces. These are the  router  inter-
  2489.             faces  that the matching datagram should be forwarded out of
  2490.             (assuming that  the  datagram  was  received  from  upstream
  2491.             node).  Each  interface is also listed with a TTL value. The
  2492.             TTL value is the minimum number of hops necessary  to  reach
  2493.             the  closest  (in  terms of router hops) group member.  This
  2494.             allows the router to drop datagrams that have no  chance  of
  2495.             reaching a destination group member.
  2496.  
  2497.         o   List of downstream neighbors. When the  datagram  is  to  be
  2498.             forwarded  out  a  non-broadcast multi-access network, or if
  2499.             the interface's IPMulticastForwarding parameter  is  set  to
  2500.             data-link unicast, the datagram must be forwarded separately
  2501.             to each downstream neighbor (see Sections 2.3.3 and 6.4). As
  2502.             done  for downstream interfaces, each downstream neighbor is
  2503.             specified together with the smallest TTL that will  actually
  2504.             reach a group member.
  2505.  
  2506. 9.  Interaction with the IGMP protocol
  2507.  
  2508.     MOSPF uses the IGMP protocol (see [RFC 1112]) to  monitor  multicast
  2509.     group  membership.  In  short,  the  Designated  Router on a network
  2510.     periodically sends IGMP Host Membership Queries (see  Section  9.1),
  2511.     which in turn elicit IGMP Host Membership Reports from the network's
  2512.     multicast group members. These  Host  Membership  Reports  are  then
  2513.     recorded  in  the Designated Router's and Backup Designated Router's
  2514.     local group databases (see Section 9.2).
  2515.  
  2516.  
  2517.  
  2518.  
  2519. [Moy]                                                          [Page 45]
  2520.  
  2521. Internet Draft        Multicast Extensions to OSPF            March 1993
  2522.  
  2523.  
  2524.     9.1.  Sending IGMP Host Membership Queries
  2525.  
  2526.         Only the  network's  Designated  Router  sends  Host  Membership
  2527.         Queries.  This minimizes the amount of group membership informa-
  2528.         tion on the network, both in terms of queries and responses.
  2529.  
  2530.         When a MOSPF router becomes Designated Router on a  network,  it
  2531.         checks to see that the network's IPMulticastForwarding parameter
  2532.         is set to data-link multicast  (see  Section  B.2).  If  so,  it
  2533.         starts  the  interface's  IGMP polling timer. Then, whenever the
  2534.         timer  fires  (every  IGMPPollingInterval  seconds),  the  MOSPF
  2535.         router sends a Host Membership Query out the interface. The des-
  2536.         tination of the query is the IP address 224.0.0.1. For the  for-
  2537.         mat  of  the  query,  see  [RFC 1112].  If/when the MOSPF router
  2538.         ceases to be the network's Designated Router, the  IGMP  polling
  2539.         timer is disabled and no more Hosts Membership Queries are sent.
  2540.  
  2541.         Unusual behavior  can  result  when  multiple  IP  networks  are
  2542.         assigned to a single physical network. MOSPF treats each such IP
  2543.         network separately, electing (possibly) a  different  Designated
  2544.         Router  for  each network.  However, IGMP operates on a physical
  2545.         network basis only: when a Host Membership Query  is  sent,  all
  2546.         group  members  on  the  physical network respond, regardless of
  2547.         their IP addresses. So unless the IPMulticastForwarding  parame-
  2548.         ter  is set to a value other than data-link multicast on all but
  2549.         one of the physical  network's  IP  networks,  excess  multicast
  2550.         membership reporting will result.
  2551.  
  2552.     9.2.  Receiving IGMP Host Membership Reports
  2553.  
  2554.         Received Host Membership  Reports  are  processed  by  both  the
  2555.         network's  Designated Router and Backup Designated Router. It is
  2556.         the  Designated  Router's  responsibility  to   distribute   the
  2557.         network's  group  membership  information throughout the routing
  2558.         domain, by originating group-membership-LSAs (see  Section  10).
  2559.         The  Backup  Designated  Router processes Reports so that it too
  2560.         has a complete picture of the network's group  membership,  ena-
  2561.         bling a quick cutover upon Designated Router failure.
  2562.  
  2563.         An IGMP Host Membership Report concerns membership in  a  single
  2564.         IP  multicast group (call it Group A). The Report is sent to the
  2565.         Group A address so that other group members may see  the  Report
  2566.         and  avoid sending duplicates (see [RFC 1112] for details). When
  2567.         an IGMP Host  Membership  Report,  sent  on  Network  N[14],  is
  2568.         received by a MOSPF router, the following steps are executed:
  2569.  
  2570.         (1) If the router is  neither  the  Designated  Router  nor  the
  2571.             Backup  Designated  Router  on  the  network,  the Report is
  2572.  
  2573.  
  2574.  
  2575. [Moy]                                                          [Page 46]
  2576.  
  2577. Internet Draft        Multicast Extensions to OSPF            March 1993
  2578.  
  2579.  
  2580.             discarded and processing stops.
  2581.  
  2582.         (2) If the Report  concerns  a  multicast  group  in  the  range
  2583.             224.0.0.1  -  224.0.0.255,  the Report is discarded and pro-
  2584.             cessing stops. This range of multicast groups are for  local
  2585.             use  (single hop) only, and datagrams sent to these destina-
  2586.             tions are never forwarded by multicast routers.
  2587.  
  2588.         (3) Locate the entry for [Group A, Network N] in the local group
  2589.             database.  If no such entry exists, create one. In any case,
  2590.             set the age of the entry to 0. Note that  even  if  multiple
  2591.             hosts  attached  to  Network N report membership in the same
  2592.             group, only a single local  group  database  entry  will  be
  2593.             formed.  See  Section  8.4  for  more details concerning the
  2594.             local group database.
  2595.  
  2596.         (4) If the router is the  network's  Designated  Router,  and  a
  2597.             local group database entry was created in the previous step,
  2598.             it may be necessary to originate a new group-membership-LSA.
  2599.             See Section 10 for details.
  2600.  
  2601.     9.3.  Aging local group database entries
  2602.  
  2603.         Every local database entry has an age field. Suppose that  there
  2604.         is  a  database  entry  for [Group A, Network N1]. The age field
  2605.         then indicates the length of time (in seconds)  since  the  last
  2606.         Host  Membership  Report for Group A was received on Network N1.
  2607.         If the age of the entry reaches Network  N1's  configured  IGMP-
  2608.         Timeout value (see Section B.2), the entry is considered invalid
  2609.         and is removed from the database.
  2610.  
  2611.         Note that when a router, after having been either  Network  N1's
  2612.         Designated  Router  or  Backup  Designated Router, but now being
  2613.         neither, will (after IGMPTimeout seconds) automatically age  out
  2614.         all  of its local group database entries associated with Network
  2615.         N1. For this reason, it is not necessary to  purge  local  group
  2616.         database entries on OSPF interface state changes.
  2617.  
  2618.     9.4.  Receiving IGMP Host Membership Queries
  2619.  
  2620.         If a MOSPF router has internal multicast  applications,  and  if
  2621.         the  applications  have  bound  themselves to certain interfaces
  2622.         (using the RFC 1112 representation described in Section 5), then
  2623.         the MOSPF router responds to received Host Membership Queries by
  2624.         issuing Host Membership Reports. Identical to the  operation  of
  2625.         any  IP  host  supporting multicast applications, the exact pro-
  2626.         cedure for issuing these Host Membership Reports is specified in
  2627.         [RFC  1112].  Note  that  in  this  case, if the router has been
  2628.  
  2629.  
  2630.  
  2631. [Moy]                                                          [Page 47]
  2632.  
  2633. Internet Draft        Multicast Extensions to OSPF            March 1993
  2634.  
  2635.  
  2636.         elected Designated Router on a network, it must receive its  own
  2637.         Host Membership Reports and Host Membership Queries.
  2638.  
  2639.         If instead all of its applications  have  joined  groups  in  an
  2640.         interface-independent    fashion   (using   the   MOSPF-specific
  2641.         representation described in Section 5), the  MOSPF  router  does
  2642.         not  respond  to  Host  Membership  Queries.  Instead, the MOSPF
  2643.         router communicates this membership information  by  originating
  2644.         appropriate group-membership-LSAs (see Section 10.1).
  2645.  
  2646. 10.  Group-membership-LSAs
  2647.  
  2648.     Group-membership-LSAs provide the means of  distributing  membership
  2649.     information  throughout  the MOSPF routing domain. Group-membership-
  2650.     LSAs are specific to a single OSPF  area  (see  Section  3.1).  Each
  2651.     group-membership-LSA concerns a single multicast group. Essentially,
  2652.     the group-membership-LSA lists those  networks  which  are  directly
  2653.     connected  to  the  LSA's  originator  and which contain one or more
  2654.     group members. For more details on how the group-membership-LSA aug-
  2655.     ments the OSPF link state database, see Section 2.3.1.
  2656.  
  2657.     The creation of group-membership-LSAs is discussed in Section  10.1.
  2658.     The  format of the group-membership-LSA is described in Section A.3.
  2659.     A router will originate a group membership-LSA for multicast group A
  2660.     when one or more of the following conditions hold:
  2661.  
  2662.     (1) The router is Designated Router on a network  (call  it  Network
  2663.         X),  the  interface  to  Network X has its IPMulticastForwarding
  2664.         parameter set to data-link multicast (see Section B.2), and Net-
  2665.         work X contains one or more members of Group A.
  2666.  
  2667.     (2) The router is an inter-area  multicast  forwarder  (see  Section
  2668.         B.1),  and  one  or  more  of the router's attached non-backbone
  2669.         areas contain Group A members. In this  case,  the  router  will
  2670.         originate  a group-membership-LSA for Group A into the backbone.
  2671.         This is the way group membership is conveyed between areas  (see
  2672.         Section 3.1).
  2673.  
  2674.     (3) The router itself has applications that are  requesting  member-
  2675.         ship  in  Group A, in an interface-independent fashion (see Sec-
  2676.         tion 5).
  2677.  
  2678.     As for all other types  of  OSPF  link  state  advertisements  (e.g,
  2679.     router-LSAs,  network-LSAs, etc.), group-membership-LSAs are aged as
  2680.     they are held in a router's link state database.  To  prevent  valid
  2681.     advertisements  from  "aging  out",  a router must refresh its self-
  2682.     originated group-membership-LSAs every  LSRefreshTime  interval,  by
  2683.     incrementing  their  LS  sequence  numbers  and  reissuing  them. In
  2684.  
  2685.  
  2686.  
  2687. [Moy]                                                          [Page 48]
  2688.  
  2689. Internet Draft        Multicast Extensions to OSPF            March 1993
  2690.  
  2691.  
  2692.     addition, when an event occurs that would alter one of the  router's
  2693.     self-originated  group-membership-LSAs, a new instance of the LSA is
  2694.     issued with an updated (i.e., incremented by 1) LS sequence  number.
  2695.     Note  however  that  a  router  is  not allowed to originate two new
  2696.     instances of the same advertisement  within  MinLSInterval  seconds.
  2697.     For  that  reason, occasionally advertisement originations will need
  2698.     to be deferred. Also, an event may occur that makes it inappropriate
  2699.     for  the  router  to continue to originate a particular LSA. In that
  2700.     case, the router flushes the advertisement from the  routing  domain
  2701.     by  "premature  aging".  For more information concerning the mainte-
  2702.     nance of LSAs, see Sections 12, 12.4, 14 and 14.1 of [OSPF].
  2703.  
  2704.     When one of the following events occurs, it may be necessary  for  a
  2705.     router to (re)issue one or more group-membership-LSAs:
  2706.  
  2707.     (1) One of the router's interfaces changes state. For  example,  the
  2708.         router  may  have  become Designated Router on a particular net-
  2709.         work, causing the router  to  start  advertising  the  network's
  2710.         group  membership  to  the  rest  of  the MOSPF system in group-
  2711.         membership-LSAs.
  2712.  
  2713.     (2) The router receives an IGMP Host Membership  Report,  causing  a
  2714.         new local group database entry to be formed (see Section 9.2).
  2715.  
  2716.     (3) One of the router's local group  database  entries  "ages  out",
  2717.         because  it  is  no longer being refreshed by received IGMP Host
  2718.         Membership Reports (see Section 9.3).
  2719.  
  2720.     (4) The router is an inter-area multicast forwarder, and  the  group
  2721.         membership  of  one  of the router's attached non-backbone areas
  2722.         changes.  This is detected by the reception of  a  new,  or  the
  2723.         flushing  of  an  old,  group-membership-LSA  into/from the non-
  2724.         backbone area's link state database.
  2725.  
  2726.     (5) The group membership of one of the  router's  internal  applica-
  2727.         tions changes.
  2728.  
  2729.     10.1.  Constructing group-membership-LSAs
  2730.  
  2731.         This section details how to build  a  group-membership-LSA.  The
  2732.         format  of  a  group-membership-LSA is described in Section A.3.
  2733.         Each group-membership-LSA concerns a single multicast group. The
  2734.         body  of  the advertisement is a list of the local transit nodes
  2735.         (the router itself and directly attached transit networks)  that
  2736.         contain  group members. Section 10 listed the conditions requir-
  2737.         ing the (re)origination of a group-membership-LSA. Note that  if
  2738.         the router is an area border router, it may be necessary to ori-
  2739.         ginate a separate group-membership-LSA for each attached area.
  2740.  
  2741.  
  2742.  
  2743. [Moy]                                                          [Page 49]
  2744.  
  2745. Internet Draft        Multicast Extensions to OSPF            March 1993
  2746.  
  2747.  
  2748.         The following defines the contents of a group-membership-LSA, as
  2749.         originated  by  Router  X  into  Area  A. It is assumed that the
  2750.         group-membership-LSA is to report membership in multicast  group
  2751.         G:
  2752.  
  2753.         o   The advertisement fields that are not type-specific (LS age,
  2754.             LS  sequence number, LS checksum and length) are set accord-
  2755.             ing to Section 12.1 of [OSPF].
  2756.  
  2757.         o   The Options field of a group-membership-LSA is not processed
  2758.             on  receipt.  However,  for consistency, the Option field in
  2759.             these advertisements  should  have  its  MC-bit  set,  T-bit
  2760.             clear,  and the E-bit should match the configuration of Area
  2761.             A (i.e., set if and only if Area A is not a stub area).  The
  2762.             rest of the Options field is set to 0.
  2763.  
  2764.         o   The Link State ID is set to the group  whose  membership  is
  2765.             being reported (Group G).
  2766.  
  2767.         o   The Advertising Router is set to the OSPF Router ID  of  the
  2768.             router originating the advertisement (Router X).
  2769.  
  2770.         o   The body of the advertisement is a  list  of  local  transit
  2771.             vertices  that  should  be  labelled with Group G membership
  2772.             (see Section 2.3.1). This list may include  the  advertising
  2773.             router  itself,  and  any  of  the transit networks that are
  2774.             directly attached to said router. The following steps deter-
  2775.             mine  which  of these transit vertices are actually included
  2776.             in the group-membership-LSA. Note that any particular vertex
  2777.             should be listed at most once, even though the following may
  2778.             indicate multiple reasons for  a  particular  vertex  to  be
  2779.             listed.  Also note that if no transit vertices are listed by
  2780.             the  advertisement,  the   advertisement   should   not   be
  2781.             (re)originated;  if an instance of the advertisement already
  2782.             exists, it should then be flushed from the link state  data-
  2783.             base  using  the premature aging procedure specified in Sec-
  2784.             tion 14.1 of [OSPF].
  2785.  
  2786.             a.  Consider those entries in the local group database  that
  2787.                 describe  Group G membership (see Section 8.4). Consider
  2788.                 each such entry in turn. Each entry  references  one  of
  2789.                 Router  X's  attached  networks  (call it Network N). If
  2790.                 either Network N does not belong to Area A, or if Router
  2791.                 X  is  not  Network N's Designated Router[15], Network N
  2792.                 should not be added to the group-membership-LSA, and the
  2793.                 next local group database entry should be examined. Oth-
  2794.                 erwise, if N is a stub network (e.g., Router  X  is  the
  2795.                 only OSPF router attached to N), Router X adds itself to
  2796.  
  2797.  
  2798.  
  2799. [Moy]                                                          [Page 50]
  2800.  
  2801. Internet Draft        Multicast Extensions to OSPF            March 1993
  2802.  
  2803.  
  2804.                 the advertisement by adding a vertex  with  Vertex  type
  2805.                 set  to  1 (router) and Vertex ID set to Router X's OSPF
  2806.                 Router ID. Otherwise, N is a transit  network.  In  this
  2807.                 case,  Network N should be added to the advertisement by
  2808.                 adding a vertex with Vertex type set to 2 (network)  and
  2809.                 Vertex  ID  set  to the IP address of Network N's Desig-
  2810.                 nated Router (i.e., Router X's IP interface  address  on
  2811.                 Network N).
  2812.  
  2813.             b.  If Router X itself has applications requesting  Group  G
  2814.                 membership  on  an interface-independent basis (see Sec-
  2815.                 tion 5), it should add itself to  the  advertisement  by
  2816.                 adding  a  vertex with Vertex type set to 1 (router) and
  2817.                 Vertex ID set to Router X's OSPF Router ID.
  2818.  
  2819.             c.  If Router X is an inter-area  multicast  forwarder  (see
  2820.                 Section  3.1),  Area  A  is  the  backbone area (Area ID
  2821.                 0.0.0.0), and at least one of Router X's  attached  non-
  2822.                 backbone  areas  has  Group  G members (indicated by the
  2823.                 presence of one or more  advertisements  in  the  areas'
  2824.                 link  state  databases having Link State ID set to Group
  2825.                 G[16]), then Router X should add itself  to  the  adver-
  2826.                 tisement  by  adding  a vertex with Vertex type set to 1
  2827.                 (router) and Vertex ID set to Router X's OSPF Router ID.
  2828.  
  2829.         Consider as an example the network configuration  in  Figure  4.
  2830.         Suppose  that  Router RT2 has been elected Designated Router for
  2831.         Network N3.  Router RT2 would then originate (into Area  1)  the
  2832.         following group-membership-LSA for Group B:
  2833.  
  2834.                ; RT2's group-membership-LSA for Group B
  2835.  
  2836.                LS age = 0                     ;always true on origination
  2837.                Options = (E-bit|MC-bit)
  2838.                LS type = 6                    ;group-membership-LSA
  2839.                Link State ID = Group B
  2840.                Advertising Router = RT2's Router ID
  2841.                        Vertex type = 1        ;RT2 itself (for stub N2)
  2842.                        Vertex ID = RT2's Router ID
  2843.                        Vertex type = 2        ;Network N3 (since RT2 is DR)
  2844.                        Vertex ID = RT2's IP interface address on N3
  2845.  
  2846.     10.2.  Flooding group-membership-LSAs
  2847.  
  2848.         When MOSPF routers and  non-multicast  OSPF  routers  are  mixed
  2849.         together  in a routing domain, the group-membership-LSAs are not
  2850.         flooded to the non-multicast routers[17].  As a  general  design
  2851.         principle,  optional  OSPF  advertisements  are  only flooded to
  2852.  
  2853.  
  2854.  
  2855. [Moy]                                                          [Page 51]
  2856.  
  2857. Internet Draft        Multicast Extensions to OSPF            March 1993
  2858.  
  2859.  
  2860.         those routers that understand them.
  2861.  
  2862.         A MOSPF router learns of its neighbor's multicast-capability  at
  2863.         the  beginning  of  the "Database Exchange Process" (see Section
  2864.         10.6 of [OSPF], receiving Database Description  packets  from  a
  2865.         neighbor  in  state Exstart). A neighbor is multicast-capable if
  2866.         and only if it sets the MC-bit in the Options field of its Data-
  2867.         base  Description  packets.  Then, in the next step of the Data-
  2868.         base Exchange process, group-membership-LSAs are included in the
  2869.         Database summary list sent to the neighbor (see Sections 7.2 and
  2870.         10.3 of [OSPF]) if  and  only  if  the  neighbor  is  multicast-
  2871.         capable.
  2872.  
  2873.         When flooding group-membership-LSAs  to  adjacent  neighbors,  a
  2874.         MOSPF  router  looks  at  the  neighbor's  multicast-capability.
  2875.         Group-membership-LSAs  are  only  flooded  to  multicast-capable
  2876.         neighbors.  To  be  more  precise,  in  Section  13.3 of [OSPF],
  2877.         group-membership-LSAs  are  only  placed  on  the   Link   state
  2878.         retransmission  lists  of multicast-capable neighbors[18].  Note
  2879.         however that when sending Link State Update  packets  as  multi-
  2880.         casts,  a  non-multicast  neighbor  may  (inadvertently) receive
  2881.         group-membership-LSAs. The non-multicast router will then simply
  2882.         discard the LSA (see Section 13 of [OSPF], receiving LSAs having
  2883.         unknown LS types).
  2884.  
  2885. 11.  Detailed description of multicast datagram forwarding
  2886.  
  2887.     This section describes in detail the way MOSPF forwards a  multicast
  2888.     datagram.   The  forwarding  process  has  already  been  informally
  2889.     presented in Section 2.2. However, there are several obscure  confi-
  2890.     guration  options (e.g., the IPMulticastForwarding interface parame-
  2891.     ter) that have been presented elsewhere in this document, which  may
  2892.     influence  the forwarding process. This section gathers together all
  2893.     the influencing factors into a single algorithm.
  2894.  
  2895.     It is assumed in the following that the datagram under consideration
  2896.     has  actually be received on one of the router's interfaces. Locally
  2897.     generated datagrams (i.e., originated by one of the router's  inter-
  2898.     nal  applications)  are  handled instead by the algorithm in Section
  2899.     11.3.
  2900.  
  2901.     Assume that the datagram's IP destination is Group G. The forwarding
  2902.     process then consists of the following steps:
  2903.  
  2904.     (1) Upon reception of the datagram, the MOSPF router notes the  fol-
  2905.         lowing parameters. These parameters are examined in later steps,
  2906.         to determine whether the datagram should be forwarded.
  2907.  
  2908.  
  2909.  
  2910.  
  2911. [Moy]                                                          [Page 52]
  2912.  
  2913. Internet Draft        Multicast Extensions to OSPF            March 1993
  2914.  
  2915.  
  2916.         a.  The receiving MOSPF interface associated with the  datagram.
  2917.             Based  on  the  receiving  physical interface, the receiving
  2918.             MOSPF interface is selected  by  the  algorithm  in  Section
  2919.             11.1.
  2920.  
  2921.         b.  Whether  the  datagram  was   received   as   a   link-level
  2922.             multicast/broadcast  or as a link-level unicast. This infor-
  2923.             mation is used later in Step 7 to help determine whether the
  2924.             datagram should be forwarded.
  2925.  
  2926.     (2) A copy of the datagram should be passed to each internal  appli-
  2927.         cation  that has joined Group G on the receiving MOSPF interface
  2928.         (see Section 5).
  2929.  
  2930.     (3) If the datagram's IP source address matches the receiving  MOSPF
  2931.         interface's  IP  address,  the  datagram should not be forwarded
  2932.         further, and should instead be discarded,  completing  the  for-
  2933.         warding process.  This keeps the router's own locally originated
  2934.         datagrams from being mistakenly replicated, in those cases where
  2935.         the   receiving  MOSPF  interface  receives  its  own  multicast
  2936.         transmissions.
  2937.  
  2938.     (4) If Group G falls into the range  224.0.0.1  through  224.0.0.255
  2939.         inclusive,  the  datagram  should not be forwarded further. This
  2940.         range of addresses has been dedicated for use on a local network
  2941.         segment only.
  2942.  
  2943.     (5) Associate  a  source  network  (SourceNet)  with  the  multicast
  2944.         datagram,  as  described in Section 11.2. If SourceNet cannot be
  2945.         determined (i.e., there is no available unicast  route  back  to
  2946.         the  datagram  source),  the  datagram  should  not be forwarded
  2947.         further.
  2948.  
  2949.     (6) Look up the forwarding cache entry (see  Section  8.5)  matching
  2950.         the  datagram's  [SourceNet,  Group  G, TOS] combination. If the
  2951.         cache entry does not yet exist, one is built by the  calculation
  2952.         in  Section  12.  In order for the datagram to be forwarded, the
  2953.         contents of the forwarding cache entry must be further  verified
  2954.         against the received datagram's characteristics as follows:
  2955.  
  2956.         a.  If the forwarding cache entry's upstream node is unspecified
  2957.             (i.e.,  NULL),  then  the  datagram  should not be forwarded
  2958.             further.
  2959.  
  2960.         b.  Otherwise,  suppose  that  the  forwarding   cache   entry's
  2961.             upstream node is set to EXTERNAL. In this case, the datagram
  2962.             is forwarded further if and  only  if  the  receiving  MOSPF
  2963.             interface  is set to NULL (i.e., if and only if the datagram
  2964.  
  2965.  
  2966.  
  2967. [Moy]                                                          [Page 53]
  2968.  
  2969. Internet Draft        Multicast Extensions to OSPF            March 1993
  2970.  
  2971.  
  2972.             was received on a non-MOSPF interface).
  2973.  
  2974.         c.  Otherwise, if the datagram's receiving MOSPF interface  does
  2975.             not  attach  to  the forwarding cache entry's upstream node,
  2976.             the datagram should not be forwarded further.
  2977.  
  2978.     (7) If the receiving MOSPF interface's IPMulticastForwarding parame-
  2979.         ter  is  set  to  data-link unicast, the datagram should be for-
  2980.         warded further only if it was received as a data-link unicast.
  2981.  
  2982.     (8) At this point the datagram is eligible for  further  forwarding.
  2983.         Before  forwarding,  the router checks to see whether it has any
  2984.         internal applications that have joined Group G on an  interface-
  2985.         independent  basis.  If  so,  a  copy  of the datagram should be
  2986.         passed to each such requesting application process.
  2987.  
  2988.     (9) Examine each of the downstream interfaces listed in the forward-
  2989.         ing  cache  entry. If the TTL in the datagram is greater than or
  2990.         equal to the TTL specified for the downstream interface, a  copy
  2991.         of  the  datagram  should be forwarded out the downstream inter-
  2992.         face. Before forwarding the datagram copy, the copy's TTL should
  2993.         be  decremented  by  1. On most interfaces, the datagram is for-
  2994.         warded as a data-link multicast/broadcast. The  exact  data-link
  2995.         encapsulation is dependent on the attached network's type:
  2996.  
  2997.         o   On ethernet and IEEE 802.3 networks, the  datagram  is  for-
  2998.             warded  as  a data-link multicast. The destination data-link
  2999.             multicast address is selected as an algorithmic  translation
  3000.             of the IP multicast destination. See [RFC 1112] for details.
  3001.  
  3002.         o   On FDDI networks, the datagram is forwarded as  a  data-link
  3003.             multicast.   The  destination data-link multicast address is
  3004.             selected as an algorithmic translation of the  IP  multicast
  3005.             destination. See [RFC 1390] for details.
  3006.  
  3007.         o   On SMDS networks, the datagram is forwarded using  the  same
  3008.             SMDS  address  that  is  used by IP broadcast datagrams. See
  3009.             [RFC 1209] for details.
  3010.  
  3011.         o   On networks that support broadcast, but not multicast (e.g.,
  3012.             the  Experimental  Ethernet), the datagram is forwarded as a
  3013.             data-link broadcast. See [RFC 1112] for details.
  3014.  
  3015.         o   On point-to-point networks, the datagram is forwarded in the
  3016.             same  way  that  unicast  datagrams  are forwarded. See [RFC
  3017.             1112] for details.
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023. [Moy]                                                          [Page 54]
  3024.  
  3025. Internet Draft        Multicast Extensions to OSPF            March 1993
  3026.  
  3027.  
  3028.     (10)
  3029.         Examine each of the downstream neighbors listed in the  forward-
  3030.         ing  cache  entry. If the TTL in the datagram is greater than or
  3031.         equal to the TTL specified for the downstream neighbor,  a  copy
  3032.         of  the  datagram should be forwarded to the downstream neighbor
  3033.         (as a data-link unicast). Before forwarding the  datagram  copy,
  3034.         the copy's TTL should be decremented by 1.
  3035.  
  3036.     ICMP error messages are never generated in response to  received  IP
  3037.     multicasts.  In  particular,  ICMP destination unreachables and ICMP
  3038.     TTL expired messages are not generated by the above procedure if the
  3039.     router refuses to forward a multicast datagram.
  3040.  
  3041.     11.1.  Associating a MOSPF interface with a received datagram
  3042.  
  3043.         A MOSPF interface must be associated with a  received  multicast
  3044.         datagram before it is forwarded (see Step 1a of Section 11), and
  3045.         with received IGMP Host Membership Reports before they are  pro-
  3046.         cessed (see Section 9.2).
  3047.  
  3048.         When there is only a single IP network assigned to the  physical
  3049.         interface  that  received  the datagram, the choice of receiving
  3050.         MOSPF interface is clear. When there  are  multiple  logical  IP
  3051.         networks  attached  to  the  receiving  physical  interface, the
  3052.         receiving MOSPF interface is selected as follows. Examine all of
  3053.         the  MOSPF  interfaces  associated  with  the receiving physical
  3054.         interface. Discard those interfaces whose  IPMulticastForwarding
  3055.         parameter  has  been set to disabled. The receiving MOSPF inter-
  3056.         face is then the  remaining  interface  having  the  highest  IP
  3057.         interface  address  (or  NULL  if  there are no remaining inter-
  3058.         faces)[19].
  3059.  
  3060.     11.2.  Locating the source network
  3061.  
  3062.         MOSPF forwarding cache entries are  indexed  by  the  datagram's
  3063.         source  IP network/subnet/supernet. For this reason, whenever an
  3064.         IP multicast datagram is received, the IP network  belonging  to
  3065.         the  datagram's  IP source address must be found. This is accom-
  3066.         plished by the following algorithm:
  3067.  
  3068.         Look up the OSPF TOS 0 routing table entry[20] corresponding  to
  3069.         datagram's  IP  source  address, as described in Section 11.1 of
  3070.         [OSPF]. If this routing table entry describes an OSPF intra-area
  3071.         or inter-area route, the source network is set to be the network
  3072.         defined by the routing table entry's Destination ID and  Address
  3073.         Mask  (see  Section 11 of [OSPF]). Otherwise (i.e., the matching
  3074.         routing table entry specifies an external route, or there is  no
  3075.         matching routing table entry), the list of AS external-link-LSAs
  3076.  
  3077.  
  3078.  
  3079. [Moy]                                                          [Page 55]
  3080.  
  3081. Internet Draft        Multicast Extensions to OSPF            March 1993
  3082.  
  3083.  
  3084.         are examined, determining the best match  (i.e.,  most  specific
  3085.         match)  from  among  those  LSAs  which  have been originated by
  3086.         reachable AS boundary routers and which have  their  MC-bit  set
  3087.         (see  Section  A.1).  The  source  network  is  then  set to the
  3088.         network/subnet/supernet  (possibly  even  the   default   route)
  3089.         described   by  the  best  matching  AS  external-link-LSA.   AS
  3090.         external-link-LSAs specifying a cost of LSInfinity are  eligible
  3091.         for this best match, as long as their MC-bit is set.[21]
  3092.  
  3093.         It is possible that two different MOSPF  routers  may  calculate
  3094.         the  same  multicast  datagram's source network differently. For
  3095.         example, consider the network configuration shown in  Figure  4.
  3096.         When  calculating the source network for a datagram whose source
  3097.         is Network N10 and destination is Group Ma,  Router  RT11  would
  3098.         calculate the source network as Network N10 itself, while Router
  3099.         RT10 would calculate the source network as the aggregate of Net-
  3100.         works  N9-N11  and Host H1 (advertised in a single summary-link-
  3101.         LSA by Router RT11). However, despite the possibility of routers
  3102.         selecting  different  source  networks,  all  routers will still
  3103.         agree on the datagram's shortest-path tree.
  3104.  
  3105.         External sources are treated differently in the  above  calcula-
  3106.         tion  since  it  is  likely that the Internet will have separate
  3107.         multicast and unicast topologies for some time to come. When the
  3108.         multicast  and  unicast  topologies do merge, the MC-bit will be
  3109.         set on all AS external-link-LSAs and the above use of the  LSIn-
  3110.         finity metric (to indicate a route that is to be used for multi-
  3111.         cast traffic, but not unicast traffic), will no longer be neces-
  3112.         sary.  At  that  time,  the  determination of source network for
  3113.         external sources will revert to the same  simple  routing  table
  3114.         lookup that is used for internal sources.
  3115.  
  3116.         As an example of the logic for external sources, suppose a  mul-
  3117.         ticast  datagram  is  received  having  the  IP  source  address
  3118.         10.1.1.1. Suppose also  that  the  three  AS  external-link-LSAs
  3119.         shown  in  Table  3  are in the router's OSPF database. The OSPF
  3120.         routing table lookup would yield the  network  10.1.1.0  with  a
  3121.         mask  of  255.255.255.0,  however  the  above  calculation would
  3122.         choose a source network of 10.1.0.0 with a mask of  255.255.0.0,
  3123.         despite the fact that its matching LSA has a cost of LSInfinity.
  3124.  
  3125.     11.3.  Forwarding locally originated multicasts
  3126.  
  3127.         This section describes how a MOSPF router forwards  a  multicast
  3128.         datagram  that  has  been  originated by one of the router's own
  3129.         internal applications.  The  process  begins  with  one  of  the
  3130.         router's  internal  applications  formatting  and addressing the
  3131.         datagram.  Forwarding  the  locally  originated  multicast  then
  3132.  
  3133.  
  3134.  
  3135. [Moy]                                                          [Page 56]
  3136.  
  3137. Internet Draft        Multicast Extensions to OSPF            March 1993
  3138.  
  3139.  
  3140.  
  3141.  
  3142.              Network    Mask            Cost         MC-bit
  3143.              ______________________________________________
  3144.              10.1.1.0   255.255.255.0   10           clear
  3145.              10.1.0.0   255.255.0.0     LSInfinity   set
  3146.              10.0.0.0   255.0.0.0       1            set
  3147.  
  3148.  
  3149.                  Table 3: Sample AS external-link-LSAs
  3150.  
  3151.         consists of the following steps:
  3152.  
  3153.         (1) Find the router  interface  whose  IP  address  matches  the
  3154.             datagram's  source  address. Multicast the datagram out that
  3155.             interface, according to the Host extensions  for  IP  multi-
  3156.             casting specified in [RFC 1112].
  3157.  
  3158.         (2) If the router interface found in the previous step has  been
  3159.             configured  for  MOSPF,  and  if  its  IPMulticastForwarding
  3160.             parameter is not equal to disabled, then set  the  receiving
  3161.             MOSPF  interface  to  that  interface.   Otherwise,  set the
  3162.             receiving MOSPF interface to NULL.
  3163.  
  3164.         (3) Execute the MOSPF forwarding process  described  in  Section
  3165.             11, beginning with its Step 4.
  3166.  
  3167.         The above algorithm amounts to the  router  always  multicasting
  3168.         the  datagram  out  the  source interface, and the executing the
  3169.         basic forwarding algorithm (in Section 11) as  if  the  datagram
  3170.         had  actually  been  received  on the source interface. In those
  3171.         cases where the router receives its own multicast transmissions,
  3172.         unwanted  replication  is  prevented by Step 3 of Section 11. In
  3173.         fact, this specification has purposely presented the  forwarding
  3174.         algorithm   (both   for  received  and  for  locally  originated
  3175.         datagrams) so that the  correct  forwarding  actions  are  taken
  3176.         independent  of  whether  the  router receives its own multicast
  3177.         transmissions.
  3178.  
  3179. 12.  Construction of forwarding cache entries
  3180.  
  3181.     This section details the building of a MOSPF forwarding cache entry.
  3182.     A  high  level  discussion  of  this  construction  has already been
  3183.     presented in Sections 2.3, 2.3.1, 2.3.2, 3.2,  and  4.1.  Forwarding
  3184.     cache  entries  are  built  on  demand, when a multicast datagram is
  3185.     received and no matching forwarding cache entry is found (see Step 6
  3186.     of Section 11).  The parameters passed to the forwarding cache entry
  3187.     build process are: the datagram's source network (see Section  11.2)
  3188.  
  3189.  
  3190.  
  3191. [Moy]                                                          [Page 57]
  3192.  
  3193. Internet Draft        Multicast Extensions to OSPF            March 1993
  3194.  
  3195.  
  3196.     and  its  destination group address. These two parameters are called
  3197.     SourceNet and Group G in the following algorithm. The main steps  in
  3198.     the build process are the following:
  3199.  
  3200.     (1) Allocate the forwarding cache entry. Initialize its Source  net-
  3201.         work  to  SourceNet,  its Destination multicast group to Group G
  3202.         and its IP TOS field to match the multicast datagram's TOS. Ini-
  3203.         tialize  its  upstream node and list of downstream interfaces to
  3204.         NULL.
  3205.  
  3206.     (2) For each Area A to which the calculating router is attached:
  3207.  
  3208.         a.  Calculate Area A's datagram shortest-path tree. This  calcu-
  3209.             lation  is  described in Section 12.2 below. In many ways it
  3210.             is similar to the calculation of OSPF's  intra-area  routes,
  3211.             described  in  Section  16.1 of [OSPF]. The main differences
  3212.             between the multicast datagram shortest-path  tree  calcula-
  3213.             tion and OSPF's intra-area unicast calculation are listed in
  3214.             Section 12.2.9 below. As a product of each  area's  datagram
  3215.             shortest-path  tree,  the  forwarding  cache entry's list of
  3216.             outgoing interfaces is (possibly) updated.
  3217.  
  3218.             Area A's datagram shortest-path tree  is  dependent  on  the
  3219.             datagram's IP TOS. Section 12.2 describes the TOS 0 datagram
  3220.             shortest-path tree. The modifications necessary for non-zero
  3221.             TOS values are detailed in Section 12.2.8.
  3222.  
  3223.         b.  Possibly set the forwarding  cache  entry's  upstream  node.
  3224.             Only  one  of  the  calculating router's attached areas will
  3225.             determine the forwarding cache entry's upstream  node.  This
  3226.             area is called the datagram's RootArea. The RootArea is ini-
  3227.             tially set to  NULL.  After  completing  Area  A's  datagram
  3228.             shortest-path  tree,  the calculation in Section 12.2.7 will
  3229.             determine whether Area A is the datagram's RootArea.
  3230.  
  3231.     (3) Update the forwarding cache entry's list of outgoing interfaces,
  3232.         according  to  the  contents  of  the local group database. This
  3233.         ensures multicast delivery to group members residing on the cal-
  3234.         culating  router's  directly  attached networks. This process is
  3235.         described in Section 12.3.
  3236.  
  3237.     These main steps are described in more detail  below.  The  detailed
  3238.     description  begins  with an explanation of the major data structure
  3239.     used by the datagram shortest-path tree calculation: The Vertex data
  3240.     structure.
  3241.  
  3242.  
  3243.  
  3244.  
  3245.  
  3246.  
  3247. [Moy]                                                          [Page 58]
  3248.  
  3249. Internet Draft        Multicast Extensions to OSPF            March 1993
  3250.  
  3251.  
  3252.     12.1.  The Vertex data structure
  3253.  
  3254.         A datagram shortest-path tree is built by the  Dijkstra  or  SPF
  3255.         algorithm.  The  algorithm is stated herein using graph-oriented
  3256.         language: vertices and links. Vertices are  the  area's  routers
  3257.         and  transit  networks,  and links are the router interfaces and
  3258.         point-to-point lines that connect them. Each vertex has the fol-
  3259.         lowing  state information attached to it. Basically, this infor-
  3260.         mation indicates the current best path from the SourceNet to the
  3261.         vertex, and the position of the vertex relative to the calculat-
  3262.         ing router. Note that a separate datagram shortest-path tree  is
  3263.         built  for  each area, and that the vertices described below are
  3264.         also specific to a single area (called Area A).
  3265.  
  3266.         o   Vertex type. Set to 1 for routers, 2 for  transit  networks.
  3267.             Note that this coding matches the coding for vertices listed
  3268.             in the group-membership-LSA (see Section A.3).
  3269.  
  3270.         o   Vertex ID. A 32-bit identifier for the vertex. For  routers,
  3271.             set  to  the  router's OSPF Router ID. For transit networks,
  3272.             set the IP address of the network's Designated Router.  Note
  3273.             that  this  coding matches the coding for vertices listed in
  3274.             the group-membership-LSA (see Section A.3).
  3275.  
  3276.         o   LSA. The link state  advertisement  describing  the  vertex'
  3277.             immediate  neighborhood.  Can  be discovered by performing a
  3278.             database lookup in Area A's link state database (see Section
  3279.             12.2  of  [OSPF]),  with LS type set to Vertex type and Link
  3280.             State ID set to Vertex ID.
  3281.  
  3282.         o   Parent. In the current best path from SourceNet to the  ver-
  3283.             tex,  the  router/transit  network immediately preceding the
  3284.             vertex. Note that the parent can change as better and better
  3285.             paths  are  found,  up  until the vertex is installed on the
  3286.             shortest-path tree.
  3287.  
  3288.         o   IncomingLinkType. This parameter is set to the type of  link
  3289.             that  led  to  Vertex's inclusion on the shortest-path tree.
  3290.             Listed in order of decreasing preference[22],  the  possible
  3291.             types  are:  ILVirtual  (virtual links), ILDirect (vertex is
  3292.             directly attached to SourceNet),  ILNormal  (either  router-
  3293.             to-router  or router-to-network links), ILSummary (OSPF sum-
  3294.             mary links), ILExternal (OSPF AS external links), or  ILNone
  3295.             (the vertex is not on the shortest-path tree).
  3296.  
  3297.         o   AssociatedInterface/Neighbor. If the current best path  from
  3298.             SourceNet to the vertex goes through the calculating router,
  3299.             this parameter indicates the calculating router's  interface
  3300.  
  3301.  
  3302.  
  3303. [Moy]                                                          [Page 59]
  3304.  
  3305. Internet Draft        Multicast Extensions to OSPF            March 1993
  3306.  
  3307.  
  3308.             (or neighbor) which leads to the vertex.
  3309.  
  3310.         o   Cost. The cost, in terms of the OSPF link state  metric,  of
  3311.             the  current  best  path  from SourceNet to the vertex. Note
  3312.             that if the cost of the path is a combination of both exter-
  3313.             nal  type 2 and internal OSPF metrics, that the vertex' cost
  3314.             parameter reflects both cost components. Remember  that  the
  3315.             type  2  cost  component is always more significant than the
  3316.             type 1 component.
  3317.  
  3318.         o   TTL. If the current best path from SourceNet to vertex  goes
  3319.             through  the calculating router, TTL is set to the number of
  3320.             routers between the calculating router and the vertex.  This
  3321.             includes  the  calculating  router, but does not include the
  3322.             vertex itself.
  3323.  
  3324.     12.2.  The SPF calculation
  3325.  
  3326.         This section details the construction of datagram  shortest-path
  3327.         trees.   Such  a tree describes the path of a multicast datagram
  3328.         as it traverses an OSPF area. For a given datagram, each  router
  3329.         in  an OSPF area builds an identical tree. A router connected to
  3330.         multiple areas builds a separate datagram shortest-path tree for
  3331.         each area.
  3332.  
  3333.         The datagram shortest-path tree is built by the Dijkstra or  SPF
  3334.         algorithm,  which  is the same algorithm used to discover OSPF's
  3335.         intra-area unicast routes (see  Section  16.1  of  [OSPF]).  The
  3336.         algorithm  is  stated  herein and in [OSPF] using graph-oriented
  3337.         language: vertices and links. Vertices are  the  area's  routers
  3338.         and  transit  networks,  and links are the router interfaces and
  3339.         point-to-point lines that connect them. Basically, the algorithm
  3340.         manipulates  two  lists  of vertices: the candidate list and the
  3341.         forming shortest-path tree. The candidate list consists of those
  3342.         vertices  to which paths have been discovered, but for which the
  3343.         optimality of the discovered paths is yet unknown. At each cycle
  3344.         of  the  algorithm,  the  vertex closest to the tree's root, yet
  3345.         still remaining on the candidate list, is moved from the  candi-
  3346.         date  list  to the shortest-path tree. Then the neighbors of the
  3347.         just  processed  vertex  are  examined  for  possible   addition
  3348.         to/modification  of the candidate list. The algorithm terminates
  3349.         when the candidate list is empty.
  3350.  
  3351.         The datagram shortest-path tree for Area A is constructed in the
  3352.         following  steps.  The  datagram's SourceNet and its destination
  3353.         group G are inputs to the calculation (see  Step  6  of  Section
  3354.         11). The datagram shortest-path tree also depends on the IP Type
  3355.         of service specified in the datagrams'  IP  Header.  However,  a
  3356.  
  3357.  
  3358.  
  3359. [Moy]                                                          [Page 60]
  3360.  
  3361. Internet Draft        Multicast Extensions to OSPF            March 1993
  3362.  
  3363.  
  3364.         discussion of TOS is deferred until Section 12.2.8; all calcula-
  3365.         tions and costs in the current section concern TOS 0 only.  Call
  3366.         the  router  performing the calculation Router RTX. At each step
  3367.         (and in the subordinate Sections  12.2.1  through  12.2.8)  LSAs
  3368.         from  Area  A's  link state database are examined. In all cases,
  3369.         any LSA having LS age equal to MaxAge is ignored. The main  body
  3370.         of the calculation is in Steps 4 and 5, which are repeated until
  3371.         the candidate list becomes empty:
  3372.  
  3373.         (1) Initialize  the  algorithm's  data  structures.  Clear   the
  3374.             shortest-path  tree.  Initialize the state of each vertex in
  3375.             Area A (i.e., the area's routers and transit  networks)  to:
  3376.             Parent  set  to  NULL,  IncomingLinkType  set  to ILNone and
  3377.             AssociatedInterface/Neighbor set to NULL.
  3378.  
  3379.         (2) Initialize the candidate list. One or more vertices are ini-
  3380.             tially  placed on the candidate list, depending on the loca-
  3381.             tion of SourceNet with respect to Area  A  and  Router  RTX.
  3382.             This  breaks  down into the following cases (which are named
  3383.             for later reference):
  3384.  
  3385.             o   Case SourceIntraArea: SourceNet belongs to  Area  A.  In
  3386.                 this  case, the candidate list is initialized as in Sec-
  3387.                 tion 12.2.1.
  3388.  
  3389.             o   Case SourceInterArea1: SourceNet belongs to an OSPF area
  3390.                 that  is  not  directly  attached to Router RTX. In this
  3391.                 case, the candidate list is initialized  as  in  Section
  3392.                 12.2.2.
  3393.  
  3394.             o   Case SourceInterArea2: SourceNet does not belong to Area
  3395.                 A, but it still belongs to an OSPF area that is directly
  3396.                 attached to Router RTX.  In  this  case,  the  candidate
  3397.                 list is initialized as in Section 12.2.3.
  3398.  
  3399.             o   Case SourceExternal: SourceNet is external to  the  OSPF
  3400.                 routing  domain, and Area A is not an OSPF stub area. In
  3401.                 this case, the candidate list is initialized as in  Sec-
  3402.                 tion 12.2.4.
  3403.  
  3404.             o   Case SourceStubExternal: SourceNet is  external  to  the
  3405.                 OSPF routing domain, and Area A is an OSPF stub area. In
  3406.                 this case, the candidate list is initialized as in  Sec-
  3407.                 tion 12.2.5.
  3408.  
  3409.             Two different routers in Area A may  select  different  ini-
  3410.             tialization  cases  above. For example, consider the network
  3411.             configuration shown in Figure 4. When calculating the Area 3
  3412.  
  3413.  
  3414.  
  3415. [Moy]                                                          [Page 61]
  3416.  
  3417. Internet Draft        Multicast Extensions to OSPF            March 1993
  3418.  
  3419.  
  3420.             datagram  shortest-path  tree for a datagram whose source is
  3421.             Network N7 (e.g., from Host H5) and destination is Group Ma,
  3422.             Router  RT11  would initialize the candidate list using Case
  3423.             SourceInterArea2 while Router RT9 would use  Case  SourceIn-
  3424.             terArea1.  Likewise,  if  Area  3 were configured as an OSPF
  3425.             stub area and the datagram source was the  external  Network
  3426.             N12,  Router  RT11  would  use Case SourceStubExternal while
  3427.             Router RT9 would use Case SourceInterArea1! However, despite
  3428.             the  possibility  of  routers selecting different cases, all
  3429.             routers in an area will still initialize the candidate  list
  3430.             (and  in  fact, run the rest of the SPF calculation) identi-
  3431.             cally.
  3432.  
  3433.         (3) If the candidate list is empty, the algorithm terminates.
  3434.  
  3435.         (4) Move the closest candidate vertex to the shortest-path tree.
  3436.             Select  the  vertex on the candidate list that is closest to
  3437.             SourceNet (i.e., has the smallest Cost value). If there  are
  3438.             multiple   possibilities,   select   transit  networks  over
  3439.             routers. If there are still multiple  possibilities  remain-
  3440.             ing,  select  the  vertex having the highest Vertex ID. Call
  3441.             the chosen vertex Vertex V. Remove Vertex V from the  candi-
  3442.             date list, and install it on the shortest-path tree.
  3443.  
  3444.             Next, determine whether Vertex V has been labelled with  the
  3445.             Destination  multicast Group G. If so, it may cause the for-
  3446.             warding cache entry's list of outgoing  interfaces/neighbors
  3447.             to be updated. See Section 12.2.6 for details.
  3448.  
  3449.         (5) Examine Vertex V's neighbors for possible inclusion  in  the
  3450.             candidate  list.  Consider  Vertex V's LSA. Each link in the
  3451.             LSA describes a connection to a neighboring  router/network.
  3452.             If  the  link  connects  to a stub network, examine the next
  3453.             link in the LSA. Otherwise, the link (Link L) connects to  a
  3454.             neighboring  transit  node. Call this node Vertex W. Perform
  3455.             the following steps on Vertex W:
  3456.  
  3457.             a.  If W is already on the shortest-path tree, or if W's LSA
  3458.                 does  not contain a link back to vertex V, or if W's LSA
  3459.                 has LS age of MaxAge, or if W is  not  multicast-capable
  3460.                 (indicated  by  the  MC-bit in the LSA's Options field),
  3461.                 examine the next link in V's LSA.
  3462.  
  3463.             b.  Otherwise determine the cost to associate with the  link
  3464.                 from V to W.  If SourceNet belongs to Area A (Case Sour-
  3465.                 ceIntraArea in Step 2), use the cost listed for  Link  L
  3466.                 in  V's  LSA.  Otherwise,  use  the link's reverse cost:
  3467.                 Examine W's LSA, and find the cost listed for  the  link
  3468.  
  3469.  
  3470.  
  3471. [Moy]                                                          [Page 62]
  3472.  
  3473. Internet Draft        Multicast Extensions to OSPF            March 1993
  3474.  
  3475.  
  3476.                 connecting  back  to  V. Actually, when V and W are both
  3477.                 routers, there may be multiple links  between  them.  In
  3478.                 this  case,  use the smallest cost listed in W's LSA for
  3479.                 any of the links connecting back to  V  and  having  the
  3480.                 same  Type  (as  specified  in  the  Router-LSA; must be
  3481.                 either: point-to-point connection or  virtual  link)  as
  3482.                 Link L[23].
  3483.  
  3484.             c.  Calculate the cost from SourceNet to W, when using  Link
  3485.                 L.  It  is  the sum of the cost of SourceNet to V (i.e.,
  3486.                 V's Cost parameter) plus the  link  cost  calculated  in
  3487.                 Step  5b. Let this sum be Cost C. If W is not yet on the
  3488.                 candidate list, install W on the candidate list, modify-
  3489.                 ing  its parameters as specified below (Step 5d). Other-
  3490.                 wise, W is on the candidate list already. In this  case,
  3491.                 if:
  3492.  
  3493.                 o   C is less than W's current Cost, update W's  parame-
  3494.                     ters  on the candidate list as specified below (Step
  3495.                     5d).
  3496.  
  3497.                 o   C is equal to W's current Cost, then  the  following
  3498.                     tiebreakers  are invoked. The type of Link L is com-
  3499.                     pared to W's current IncomingLinkType, and whichever
  3500.                     link  has  the preferred type is chosen (the prefer-
  3501.                     ence order of link types is listed in Section 12.1's
  3502.                     definition  of  IncomingLinkType). If the link types
  3503.                     are the same, then a link whose Parent is a  transit
  3504.                     network  is  preferred  over  one  whose Parent is a
  3505.                     router. If the links are still equivalent, the  link
  3506.                     whose  Parent  has  the  higher Vertex ID is chosen.
  3507.                     Whenever Link L is chosen, W's parameters are  modi-
  3508.                     fied  as  below  (Step  5d). Whenever the previously
  3509.                     discovered link is chosen, the next link in V's  LSA
  3510.                     is examined instead.
  3511.  
  3512.                 o   C is greater than W's current Cost, examine the next
  3513.                     link in V's LSA.
  3514.  
  3515.             d.  At this point, a better candidate path has been found to
  3516.                 Vertex  W,  using  Link  L. Modify Vertex W's parameters
  3517.                 accordingly. W's Parent is set to Vertex V.  W's  Incom-
  3518.                 ingLinkType  is  set to ILVirtual if Link L is a virtual
  3519.                 link, otherwise IncomingLinkType is set to ILNormal. W's
  3520.                 Cost    parameter   is   set   to   C.   W's   TTL   and
  3521.                 AssociatedInterface/Neighbor parameters are set  accord-
  3522.                 ing to one of the following cases:
  3523.  
  3524.  
  3525.  
  3526.  
  3527. [Moy]                                                          [Page 63]
  3528.  
  3529. Internet Draft        Multicast Extensions to OSPF            March 1993
  3530.  
  3531.  
  3532.                 o   Vertex V is the calculating router itself.  In  this
  3533.                     case,  W's TTL parameter is set to 1. If Link L is a
  3534.                     virtual link,  W's  AssociatedInterface/Neighbor  is
  3535.                     set        to       NULL.       Otherwise,       W's
  3536.                     AssociatedInterface/Neighbor  is  set  to  the  non-
  3537.                     virtual  interface connecting the calculating router
  3538.                     to W which has the smallest cost value.  Note  that,
  3539.                     in  the reverse cost (inter-area and inter-AS multi-
  3540.                     cast)  cases,  this  may  not   be   the   interface
  3541.                     corresponding  to  Link  L. However, since W is only
  3542.                     concerned with the node it is receiving the datagram
  3543.                     from  (the  upstream  node; see Section 11), and not
  3544.                     with  the  particular  interface  the  datagram   is
  3545.                     received  on, the calculating router is free to pick
  3546.                     the sending interface when there are  multiple  con-
  3547.                     necting links.
  3548.  
  3549.                 o   Vertex V  is  upstream  of  the  calculating  router
  3550.                     (i.e.,  V's AssociatedInterface/Neighbor is equal to
  3551.                     NULL). In this case, Vertex W's TTL parameter is set
  3552.                     to 0, and its AssociatedInterface/Neighbor is set to
  3553.                     NULL.
  3554.  
  3555.                 o   V is a transit network, and is  directly  downstream
  3556.                     from    the    calculating    router    (i.e.,   V's
  3557.                     AssociatedInterface/Neighbor is non-NULL and V's TTL
  3558.                     is  set  to  1).  W  is  then one of the calculating
  3559.                     router's neighbors. In this case, W's TTL  parameter
  3560.                     is  also  set to 1. If network V has been configured
  3561.                     for data-link unicasting (see Section B.2) or  if  V
  3562.                     is       a      non-broadcast      network,      W's
  3563.                     AssociatedInterface/Neighbor is set to W  itself  (a
  3564.                     neighbor  of the calculating router). Otherwise, W's
  3565.                     AssociatedInterface/Neighbor is set to the calculat-
  3566.                     ing router's interface to Network V.
  3567.  
  3568.                 o   Vertex V is downstream from the  calculating  router
  3569.                     (i.e.,   V's  AssociatedInterface/Neighbor  is  non-
  3570.                     NULL), and either a) V is a router  or  b)  V's  TTL
  3571.                     parameter  is  greater  than  1. In these cases, W's
  3572.                     AssociatedInterface/Neighbor  parameter  is   copied
  3573.                     directly  from V.  If V is a router, W's TTL parame-
  3574.                     ter is set to V's TTL parameter incremented by  one.
  3575.                     If  V is a transit network, W's TTL parameter is set
  3576.                     directly to V's TTL parameter.
  3577.  
  3578.         (6) If the candidate list is non-empty, go to Step 4. Otherwise,
  3579.             the algorithm terminates.
  3580.  
  3581.  
  3582.  
  3583. [Moy]                                                          [Page 64]
  3584.  
  3585. Internet Draft        Multicast Extensions to OSPF            March 1993
  3586.  
  3587.  
  3588.         After the datagram shortest-path tree for Area  A  is  complete,
  3589.         the  calculating router (RTX) must decide whether Area A, out of
  3590.         all of RTX's attached areas,  determines  the  forwarding  cache
  3591.         entry's  upstream  node. This determination is described in Sec-
  3592.         tion 12.2.7.
  3593.  
  3594.         Examples of the above SPF calculation, with particular  emphasis
  3595.         on the tiebreaking rules, are given in Appendix C.
  3596.  
  3597.         12.2.1.  Candidate list Initialization: Case SourceIntraArea
  3598.  
  3599.             In this case, SourceNet belongs to Area  A.   The  candidate
  3600.             list  is  then  initialized  as  follows. Start with the LSA
  3601.             listed as Link State Origin in  the  matching  OSPF  routing
  3602.             table entry.  If this LSA is not multicast-capable (i.e, its
  3603.             Options field has  the  MC-bit  clear)  the  candidate  list
  3604.             should  be  set to NULL. Otherwise, the vertex identified by
  3605.             the LSA is installed on the candidate list, setting its ver-
  3606.             tex parameters as follows: IncomingLinkType set to ILDirect,
  3607.             Cost    set     to     0,     Parent     to     NULL     and
  3608.             AssociatedInterface/Neighbor to NULL.
  3609.  
  3610.             As a consequence of this initialization, note that if  Sour-
  3611.             ceNet  is  a  stub  network, then the datagram shortest-path
  3612.             tree will not actually be rooted at the datagram source, but
  3613.             will instead be rooted at the MOSPF router that attaches the
  3614.             stub network to the rest of the MOSPF system.  For  example,
  3615.             consider  the  network configuration shown in Figure 4. When
  3616.             calculating the Area 2 datagram  shortest-path  tree  for  a
  3617.             datagram whose source is Network N7 (e.g., from Host H5) and
  3618.             destination is Group Ma, Router RT11 (and all other  routers
  3619.             attached  to  Area 2) will begin with the candidate list set
  3620.             to Router RT8. As another example,  the  datagram  shortest-
  3621.             path  tree  pictured  in Figure 3 is really rooted at Router
  3622.             RT3 instead of Network N4.
  3623.  
  3624.         12.2.2.  Candidate list Initialization: Case SourceInterArea1
  3625.  
  3626.             In this case, SourceNet belongs to an OSPF area that is  not
  3627.             directly attached to the calculating router (RTX).  The can-
  3628.             didate list is then initialized as follows. Examine the Area
  3629.             A  summary-link-LSAs  advertising  SourceNet.  For each such
  3630.             summary-link-LSA: if both a) the MC-bit is set in the  LSA's
  3631.             Options  field  and  b)  the advertised cost is not equal to
  3632.             LSInfinity, then the vertex representing the LSA's advertis-
  3633.             ing  area  border  router is added to the candidate list. An
  3634.             added vertex' state is initialized as: IncomingLinkType  set
  3635.             to  ILSummary,  Cost  to  whatever is advertised in the LSA,
  3636.  
  3637.  
  3638.  
  3639. [Moy]                                                          [Page 65]
  3640.  
  3641. Internet Draft        Multicast Extensions to OSPF            March 1993
  3642.  
  3643.  
  3644.             Parent to NULL and AssociatedInterface/Neighbor to NULL.
  3645.  
  3646.             For example, consider the  network  configuration  shown  in
  3647.             Figure  4.   When  calculating the Area 1 datagram shortest-
  3648.             path tree for a datagram whose source is Network  N7  (e.g.,
  3649.             from  Host H5) and destination is Group Ma, Router RT2 would
  3650.             initialize the candidate list to contain the two area border
  3651.             routers RT3 (with a cost of 20) and RT4 (with a cost of 19).
  3652.             See Figure 6 for more details.
  3653.  
  3654.         12.2.3.  Candidate list Initialization: Case SourceInterArea2
  3655.  
  3656.             In this case, SourceNet belongs to an OSPF area  other  than
  3657.             Area  A, but one that is still directly attached to the cal-
  3658.             culating router (RTX).  The candidate list is then  initial-
  3659.             ized in the following two steps:
  3660.  
  3661.             (1) Find the Area A summary-link-LSA that best matches Sour-
  3662.                 ceNet, excluding those summary-link-LSAs specifying cost
  3663.                 LSInfinity    or    having    unreachable    Advertising
  3664.                 Routers[24].   A  matching  summary-link-LSA is one that
  3665.                 advertises a range of  addresses  containing  SourceNet;
  3666.                 the  best  matching is as usual the most specific match.
  3667.                 Let SourceRange be the network  described  by  the  best
  3668.                 matching summary-link-LSA.
  3669.  
  3670.             (2) Similar to the logic in the SourceInterArea1 case, exam-
  3671.                 ine  all  the  Area  A summary-link-LSAs which advertise
  3672.                 SourceRange. For each such summary-link-LSA: if both  a)
  3673.                 the  MC-bit is set in the LSA's Options field and b) the
  3674.                 advertised cost is not equal  to  LSInfinity,  then  the
  3675.                 vertex  representing  the  LSA's advertising area border
  3676.                 router is added to the candidate list. An added  vertex'
  3677.                 state  is initialized as: IncomingLinkType set to ILSum-
  3678.                 mary, Cost to whatever is advertised in the LSA,  Parent
  3679.                 to NULL and AssociatedInterface/Neighbor to NULL.
  3680.  
  3681.             The reason why SourceRange is used, instead of simply  using
  3682.             SourceNet  (as  was  done in case SourceInterArea1), is that
  3683.             routing information may have been collapsed  at  area  boun-
  3684.             daries.  In  order  for Area A's area border routers and its
  3685.             internal routers to  construct  the  same  Area  A  datagram
  3686.             shortest-path  tree,  they  must both start at SourceRange -
  3687.             Area A's internal routers know nothing about SourceNet. Note
  3688.             that  SourceRange is not discovered simply by looking at the
  3689.             calculating router's configured set of area address  ranges,
  3690.             in  order to avoid dependence on the configured area address
  3691.             ranges being synchronized across all area border routers.
  3692.  
  3693.  
  3694.  
  3695. [Moy]                                                          [Page 66]
  3696.  
  3697. Internet Draft        Multicast Extensions to OSPF            March 1993
  3698.  
  3699.  
  3700.             For example, consider the  network  configuration  shown  in
  3701.             Figure  4.   When  calculating the Area 2 datagram shortest-
  3702.             path tree for a datagram whose source  is  Network  N11  and
  3703.             destination  is  Group Ma, Router RT11 would calculate Sour-
  3704.             ceRange to be the collection: Networks N9-N11 and  Host  H1.
  3705.             It  would  then  initialize  the  candidate  list to contain
  3706.             itself (RT11) only, with an associated Cost of 1 (since RT11
  3707.             is  advertising  Networks  N9-N11  and Host H1 in a summary-
  3708.             link-LSA with a cost of 1).
  3709.  
  3710.         12.2.4.  Candidate list Initialization: Case SourceExternal
  3711.  
  3712.             In this case, SourceNet is  external  to  the  OSPF  routing
  3713.             domain,  and Area A is not an OSPF stub area.  The candidate
  3714.             list is then initialized as follows. Note  that  an  attempt
  3715.             may  be  made to add a Vertex W to the candidate list when W
  3716.             already belongs to the candidate list.  When  this  happens,
  3717.             W's  vertex  parameters are updated if the Cost parameter it
  3718.             would be added with is better[25] (closer to SourceNet) than
  3719.             its previous value. When the costs are the same, W's parame-
  3720.             ters are still modified if the IncomingLinkType it would  be
  3721.             added  with  is better (see IncomingLinkType's definition in
  3722.             Section 12.1) than its previous value.
  3723.  
  3724.             For each AS  external-link-LSA  advertising  SourceNet,  the
  3725.             following steps are performed:
  3726.  
  3727.             o   If the AS external-link-LSA's MC-bit is clear or if  its
  3728.                 advertising   router  is  not  reachable,  then  the  AS
  3729.                 external-link-LSA is  not  used.  AS  external-link-LSAs
  3730.                 having  their MC-bit set and advertising a cost of LSIn-
  3731.                 finity can be used; these LSAs describe paths  that  can
  3732.                 be  used  for  multicast,  but not unicast, data traffic
  3733.                 (see Section 11.2).
  3734.  
  3735.             o   If the AS external-link-LSA's Forwarding  address  field
  3736.                 is 0.0.0.0, the following vertices are added to the can-
  3737.                 didate list. If the Advertising AS boundary router (call
  3738.                 it  ASBR) belongs to Area A, the vertex representing the
  3739.                 AS boundary router is added to the candidate list  using
  3740.                 parameters:  IncomingLinkType set to ILExternal, Cost to
  3741.                 whatever is advertised in the LSA, Parent  to  NULL  and
  3742.                 AssociatedInterface/Neighbor  to  NULL. Then, regardless
  3743.                 of whether ASBR belongs to  Area  A,  all  Area  A  area
  3744.                 border    routers   that   are   advertising   reachable
  3745.                 multicast-capable (MC-bit set) type 4  summary-link-LSAs
  3746.                 for ASBR are added to the candidate list. Each such area
  3747.                 border   router   is   added   with   the    parameters:
  3748.  
  3749.  
  3750.  
  3751. [Moy]                                                          [Page 67]
  3752.  
  3753. Internet Draft        Multicast Extensions to OSPF            March 1993
  3754.  
  3755.  
  3756.                 IncomingLinkType  set  to  ILSummary, Cost to the sum of
  3757.                 whatever is advertised in the  type  4  summary-link-LSA
  3758.                 plus  the  value  in  the original AS external-link-LSA,
  3759.                 Parent to NULL and AssociatedInterface/Neighbor to NULL.
  3760.  
  3761.             o   If the AS external-link-LSA's Forwarding  address  field
  3762.                 is  non-zero, the Forwarding address is looked up in the
  3763.                 OSPF routing table. Then processing breaks into  one  of
  3764.                 the following cases:
  3765.  
  3766.                 o   The Forwarding address is not usable. In this  case,
  3767.                     nothing is added to the candidate list. The Forward-
  3768.                     ing address is not usable if either it has no match-
  3769.                     ing  routing table entry, or if the matching routing
  3770.                     table entry is neither of  type  intra-area  nor  of
  3771.                     type inter-area.
  3772.  
  3773.                 o   The Forwarding address belongs to  Area  A[26]:  the
  3774.                     Forwarding address' matching routing table entry has
  3775.                     Path-type of intra-area and its Associated  area  is
  3776.                     Area  A. In this case, the vertex represented by the
  3777.                     matching routing table  entry's  Link  State  Origin
  3778.                     field  is added to the candidate list (assuming that
  3779.                     the vertex  is  multicast-capable).  The  vertex  is
  3780.                     added  with  the parameters: IncomingLinkType set to
  3781.                     ILExternal, Cost to whatever was advertised  in  the
  3782.                     original  AS  external-link-LSA,  Parent to NULL and
  3783.                     AssociatedInterface/Neighbor to NULL.
  3784.  
  3785.                 o   The Forwarding address belongs to an  area  that  is
  3786.                     not  attached  to  Router  RTX[27]:  the  Forwarding
  3787.                     address' matching routing table entry has  Path-type
  3788.                     of  inter-area.  Call the network represented by the
  3789.                     matching routing table entry  ForwardNet.  For  each
  3790.                     reachable   multicast-capable  summary-link-LSA  (in
  3791.                     Area  A)  advertising  ForwardNet,  add  the   LSA's
  3792.                     advertising area border router to the candidate list
  3793.                     using parameters: IncomingLinkType set to ILSummary,
  3794.                     Cost  to  the  sum  of whatever is advertised in the
  3795.                     summary-link-LSA plus the value in the  original  AS
  3796.                     external-link-LSA,     Parent     to     NULL    and
  3797.                     AssociatedInterface/Neighbor to NULL.
  3798.  
  3799.                 o   The Forwarding address belongs  to  another  one  of
  3800.                     Router  RTX's  attached  areas[28]:  the  Forwarding
  3801.                     address' matching routing table entry has  Path-type
  3802.                     of  intra-area and its associated Area is other than
  3803.                     Area  A.   Call  the  network  represented  by   the
  3804.  
  3805.  
  3806.  
  3807. [Moy]                                                          [Page 68]
  3808.  
  3809. Internet Draft        Multicast Extensions to OSPF            March 1993
  3810.  
  3811.  
  3812.                     matching  routing table entry ForwardNet. First find
  3813.                     the Area A summary-link-LSA that best matches  Sour-
  3814.                     ceNet,  excluding those summary-link-LSAs specifying
  3815.                     cost LSInfinity or  having  unreachable  Advertising
  3816.                     Routers.  Let  ForwardRange be the network described
  3817.                     by the best  matching  summary-link-LSA.  Then,  for
  3818.                     each  reachable  multicast-capable  summary-link-LSA
  3819.                     (in Area A) advertising ForwardRange, add the  LSA's
  3820.                     advertising area border router to the candidate list
  3821.                     using parameters: IncomingLinkType set to ILSummary,
  3822.                     Cost  to  the  sum  of whatever is advertised in the
  3823.                     summary-link-LSA plus the value in the  original  AS
  3824.                     external-link-LSA,     Parent     to     NULL    and
  3825.                     AssociatedInterface/Neighbor to NULL.
  3826.  
  3827.             The above calculation can be restated as  follows.  Each  of
  3828.             Area A's inter-area multicast forwarders and inter-AS multi-
  3829.             cast forwarders are examined.  Those  that  have  multicast-
  3830.             capable   paths   to  SourceNet  (represented  as  either  a
  3831.             multicast-capable AS external link or the concatenation of a
  3832.             Type  4  summary  link  and  a multicast-capable AS external
  3833.             link) are added to the candidate list  as  router  vertices.
  3834.             (It is possible that, when considering a router that is both
  3835.             an inter-area multicast forwarder and an inter-AS  multicast
  3836.             forwarder,  two  equal cost paths exist to SourceNet, one an
  3837.             AS external link and the other a concatenation of a  Type  4
  3838.             summary link and an AS external link. In this case, the con-
  3839.             catenation of the Type 4 summary link and  the  AS  external
  3840.             link  is  preferred). The added vertex' state is set as fol-
  3841.             lows: IncomingLinkType set  to  ILSummary  if  the  path  is
  3842.             represented  as a concatenation of a Type 4 summary link and
  3843.             an AS external link, IncomingLinkType set to ILExternal oth-
  3844.             erwise,  Cost set to the cost of the shortest path from ver-
  3845.             tex   to    SourceNet,    Parent    set    to    NULL    and
  3846.             AssociatedInterface/Neighbor set to NULL.
  3847.  
  3848.             For example, consider the  network  configuration  shown  in
  3849.             Figure  4.   When  calculating the Area 2 datagram shortest-
  3850.             path tree for a datagram whose source  is  Network  N14  and
  3851.             destination  is  Group  Ma, the candidate list would be ini-
  3852.             tialized to the two routers RT7 at a cost of 14 and RT10  at
  3853.             a  cost of 19. This assumes that the external costs pictured
  3854.             in Figure 4 are external type 1s.
  3855.  
  3856.         12.2.5.  Candidate list  Initialization:  Case  SourceStubExter-
  3857.             nal
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863. [Moy]                                                          [Page 69]
  3864.  
  3865. Internet Draft        Multicast Extensions to OSPF            March 1993
  3866.  
  3867.  
  3868.             In this case, SourceNet is  external  to  the  OSPF  routing
  3869.             domain, and Area A is an OSPF stub area.  The candidate list
  3870.             is then initialized similarly to case SourceInterArea1.  The
  3871.             Area  A summary-link-LSAs advertising DefaultDestination are
  3872.             examined. For each such  summary-link-LSA  having  both  its
  3873.             MC-bit  set and its advertised cost not equal to LSInfinity,
  3874.             the vertex representing the LSA's  advertising  area  border
  3875.             router  is  added  to  the  candidate list. An added vertex'
  3876.             state is initialized as: IncomingLinkType set to  ILSummary,
  3877.             Cost  to  whatever  is advertised in the LSA, Parent to NULL
  3878.             and AssociatedInterface/Neighbor to NULL.
  3879.  
  3880.             The most likely outcome of the above is  that  all  of  stub
  3881.             Area  A's  inter-area multicast forwarders will be installed
  3882.             on the candidate list, with appropriate costs.
  3883.  
  3884.         12.2.6.  Processing labelled vertices
  3885.  
  3886.             When  encountered  during  the  SPF  calculation,   vertices
  3887.             labelled  with the destination multicast group (Group G) may
  3888.             cause  the  forwarding  cache  entry's  list  of  downstream
  3889.             interfaces/neighbors  to  be modified.  A Vertex V in Area A
  3890.             is labelled with Group G if and only if at least one of  the
  3891.             following holds:
  3892.  
  3893.             (1) V is a router, and its router-LSA indicates that it is a
  3894.                 wild-card   multicast  receiver  (i.e.,  bit  W  in  its
  3895.                 router-LSA is set). This  may  be  true  when  V  is  an
  3896.                 inter-area or inter-AS multicast forwarder.
  3897.  
  3898.             (2) V is listed in the body of a  group  membership-LSA.  In
  3899.                 particular,  find the originator of Vertex V's LSA; call
  3900.                 it Router Y. Then find the group-membership-LSA in  Area
  3901.                 A's  link state database which has Link State ID = Group
  3902.                 G and Advertising Router = Router Y (see  Section  A.3).
  3903.                 If  this group-membership-LSA exists, and if Vertex V is
  3904.                 listed in the body of the LSA (see Sections 10 and A.3),
  3905.                 then Vertex V is labelled with Group G.
  3906.  
  3907.             When Vertex V is added to the shortest-path tree in  Step  4
  3908.             of Section 12.2, and if Vertex V is both downstream from the
  3909.             calculating       router       (i.e.,       Vertex       V's
  3910.             AssociatedInterface/Neighbor  is non-NULL) and labelled with
  3911.             Group G, then  Vertex  V's  AssociatedInterface/Neighbor  is
  3912.             added  to  the  forwarding  cache entry's list of downstream
  3913.             interfaces/neighbors. In addition, Vertex V's TTL  value  is
  3914.             attached  to the added downstream interface/neighbor. If the
  3915.             particular interface/neighbor had already been added to  the
  3916.  
  3917.  
  3918.  
  3919. [Moy]                                                          [Page 70]
  3920.  
  3921. Internet Draft        Multicast Extensions to OSPF            March 1993
  3922.  
  3923.  
  3924.             list  of downstream interfaces/neighbors, the list is simply
  3925.             modified by setting the downstream interface/neighbor's  TTL
  3926.             value  to  the  minimum of its existing TTL value and Vertex
  3927.             V's TTL value.
  3928.  
  3929.         12.2.7.  Merging datagram shortest-path trees
  3930.  
  3931.             After the datagram shortest-path tree for  Area  A  is  com-
  3932.             plete, the calculating router (RTX) must decide whether Area
  3933.             A, out of all of its attached areas, determines the forward-
  3934.             ing  cache entry's upstream node.  This is done by examining
  3935.             RTX's position on the Area A  datagram  shortest-path  tree,
  3936.             which  is  in  turn  described  by  RTX's Area A Vertex data
  3937.             structure. If RTX's  Vertex  parameter  IncomingLinkType  is
  3938.             either  ILNone (RTX is not on the tree), ILVirtual or ILSum-
  3939.             mary, then some area other than Area A  will  determine  the
  3940.             upstream  node.  Otherwise,  Area A might possibly determine
  3941.             the upstream node (i.e.,  may  be  selected  the  RootArea),
  3942.             depending on the following tiebreakers[29]:
  3943.  
  3944.             o   If RootArea has not been set, then set RootArea to  Area
  3945.                 A.  Otherwise, compare the present RootArea to Area A in
  3946.                 the following:
  3947.  
  3948.             o   Choose the area that is "nearest to the source". Nearest
  3949.                 to the source depends on each area's candidate list ini-
  3950.                 tialization case, as it occurs  in  Step  2  of  Section
  3951.                 12.2.  The  initialization  cases,  listed  in  order of
  3952.                 decreasing preference  (or  nearest  to  farthest)  are:
  3953.                 SourceIntraArea,  SourceInterArea1,  SourceExternal  and
  3954.                 SourceStubExternal. Areas whose candidate list initiali-
  3955.                 zation  falls  into case SourceInterArea2 are never used
  3956.                 as the RootArea. As an  example,  consider  the  network
  3957.                 configuration  shown  in  Figure 4. When calculating the
  3958.                 datagram shortest-path tree for a datagram whose  source
  3959.                 is  Network  N7  (e.g., from Host H5) and destination is
  3960.                 Group Ma, Router RT11 would set its RootArea to  Area  2
  3961.                 (Case SourceIntraArea) instead of Area 3 (Case SourceIn-
  3962.                 terArea2) or the backbone Area 0 (Case SourceInterArea).
  3963.  
  3964.             o   If there are still two equally good areas,  and  one  of
  3965.                 them is the backbone, set RootArea to the backbone (Area
  3966.                 0).
  3967.  
  3968.             o   If there are still two equally good areas, set  RootArea
  3969.                 to  the  area whose datagram shortest-path tree provides
  3970.                 the shortest path from SourceNet to RTX. This is a  com-
  3971.                 parison of RTX's Vertex parameter Cost in the two areas.
  3972.  
  3973.  
  3974.  
  3975. [Moy]                                                          [Page 71]
  3976.  
  3977. Internet Draft        Multicast Extensions to OSPF            March 1993
  3978.  
  3979.  
  3980.             o   If there are still two equally good areas, set  RootArea
  3981.                 to one with the highest OSPF Area ID.
  3982.  
  3983.             If the above has set the RootArea to be Area A, the forward-
  3984.             ing  cache  entry's  upstream  node must be set accordingly.
  3985.             This setting depends on the IncomingLinkType in RTX's Area A
  3986.             Vertex  structure. If IncomingLinkType is equal to ILDirect,
  3987.             the upstream  node  is  set  to  the  appropriate  directly-
  3988.             connected  stub  network. If equal to ILNormal, the upstream
  3989.             node is set to the Parent  field  in  RTX's  Area  A  Vertex
  3990.             structure.  If equal to ILExternal, the upstream node is set
  3991.             to the placeholder EXTERNAL.
  3992.  
  3993.         12.2.8.  TOS considerations
  3994.  
  3995.             The previous sections 12.2 through 12.2.7 described the con-
  3996.             struction  of  a  TOS 0 (default TOS) datagram shortest-path
  3997.             tree. However, in a TOS-capable router, a separate tree  may
  3998.             be  built  for  each TOS. If a TOS-capable router receives a
  3999.             multicast datagram that specifies a non-zero TOS X, it first
  4000.             builds  the TOS 0 datagram shortest-path tree.  Then, if all
  4001.             the routers on the pruned tree are TOS-capable,  a  separate
  4002.             TOS  X datagram shortest-path tree is calculated[30]. Other-
  4003.             wise, the TOS 0 tree is used for all  datagrams,  regardless
  4004.             of their specified TOS.
  4005.  
  4006.             To determine whether there are any TOS-incapable routers  on
  4007.             the  pruned  TOS 0 tree, the following additions are made to
  4008.             Section 12.2's tree calculation:
  4009.  
  4010.             o   A new piece of state information is added to  each  ver-
  4011.                 tex:   TOS-capable  path.  This  indicates  whether  the
  4012.                 present path from SourceNet to vertex, as represented on
  4013.                 the  datagram  shortest-path  tree,  contains  only TOS-
  4014.                 capable routers.
  4015.  
  4016.             o   The TOS-capable path parameter is  calculated  when  the
  4017.                 vertex is first added to the candidate list and recalcu-
  4018.                 lated when/if the vertex' position on the candidate list
  4019.                 is modified (see Section 12.2's Step 2 and Step 5d). The
  4020.                 parameter is set to TRUE if both the  vertex  itself  is
  4021.                 TOS-capable  and  the vertex' parent has its TOS-capable
  4022.                 path parameter set to TRUE; otherwise, TOS-capable  path
  4023.                 is set to FALSE.
  4024.  
  4025.             o   All routers on the TOS 0 datagram shortest-path tree are
  4026.                 TOS-capable  if  and only if, whenever a vertex labelled
  4027.                 with Group G is added to the shortest-path tree (Section
  4028.  
  4029.  
  4030.  
  4031. [Moy]                                                          [Page 72]
  4032.  
  4033. Internet Draft        Multicast Extensions to OSPF            March 1993
  4034.  
  4035.  
  4036.                 12.2.6),  the  value  of  the  vertex'  TOS-capable path
  4037.                 parameter is TRUE.
  4038.  
  4039.             The source of the multicast datagram is always located using
  4040.             a  TOS  0 routing table lookup, regardless of the datagram's
  4041.             TOS classification (see Section 11.2).  If  the  calculating
  4042.             router  is  not  capable of TOS-based routing, it calculates
  4043.             only TOS 0 datagram shortest-path trees, and  uses  them  to
  4044.             route  datagrams  independent of TOS value.  Otherwise, when
  4045.             calculating the TOS X datagram shortest-path tree, the algo-
  4046.             rithm in Section 12.2 is used, with the modifications listed
  4047.             below.
  4048.  
  4049.             o   When calculating RangeNet and ForwardRange  in  Sections
  4050.                 12.2.3  and  12.2.4 respectively, only summary-link-LSAs
  4051.                 having TOS 0 cost of LSInfinity are excluded (no  change
  4052.                 from  the  TOS 0 case). However, when adding vertices to
  4053.                 the candidate list in Sections  12.2.2  through  12.2.5,
  4054.                 the  TOS  X cost of the summary links and/or AS external
  4055.                 links (and not the TOS 0  cost)  are  reflected  in  the
  4056.                 added vertices' Cost parameter.
  4057.  
  4058.             o   In Step 5 of Section 12.2, the TOS X cost of Link L  (in
  4059.                 the appropriate direction) is used, not the TOS 0 cost.
  4060.  
  4061.             o   Non-TOS-routers are not added to the candidate list, and
  4062.                 are thus excluded from the trees.
  4063.  
  4064.         12.2.9.  Comparison to the unicast SPF calculation
  4065.  
  4066.             There are many similarities between the  construction  of  a
  4067.             multicast datagram's shortest-path trees in Section 12.2 and
  4068.             OSPF's intra-area  route  calculation  for  unicast  traffic
  4069.             (Section  16.1 of [OSPF]). Both have been described in terms
  4070.             of Dijkstra's algorithm. However,  there  are  some  differ-
  4071.             ences. The major differences are listed below:
  4072.  
  4073.             o   In the multicast case, the datagram SPF  calculation  is
  4074.                 rooted  at  the  datagram's source. In the unicast case,
  4075.                 each router is the root of its  own  unicast  intra-area
  4076.                 SPF calculation.
  4077.  
  4078.             o   In the multicast case, the datagram  shortest-path  tree
  4079.                 is  a true tree; i.e., between any two nodes on the tree
  4080.                 there is one path. However, due  to  the  provision  for
  4081.                 equal-cost multipath in [OSPF], the unicast SPF calcula-
  4082.                 tion may add additional links to the shortest-path tree.
  4083.  
  4084.  
  4085.  
  4086.  
  4087. [Moy]                                                          [Page 73]
  4088.  
  4089. Internet Draft        Multicast Extensions to OSPF            March 1993
  4090.  
  4091.  
  4092.             o   In order to  avoid  unwanted  replication  of  multicast
  4093.                 datagrams,  MOSPF  ensures that, for any given datagram,
  4094.                 each router builds the exact same datagram shortest-path
  4095.                 tree.  This  forces two differences from the unicast SPF
  4096.                 calculation. First, it  eliminates  the  possibility  of
  4097.                 equal-cost  multipath.  Secondly,  when the MOSPF system
  4098.                 contains multiple alternate paths,  the  algorithm  must
  4099.                 ensure  that each MOSPF router deterministically chooses
  4100.                 the same  alternative.  For  this  reason,  tie-breaking
  4101.                 mechanisms  have  been specified in Steps 2, 4 and 5b of
  4102.                 Section 12.2.
  4103.  
  4104.             o   The calculation of datagram shortest  path  trees  takes
  4105.                 into account only those links that connect transit nodes
  4106.                 (i.e, router to router  or  router  to  transit  network
  4107.                 links).  The  unicast SPF calculation in Section 16.1 of
  4108.                 [OSPF] must additionally examine links to stub networks,
  4109.                 although  this  is  done after all the transit links are
  4110.                 examined.
  4111.  
  4112.             o   While both the multicast and unicast trees select  shor-
  4113.                 test paths on the basis of the OSPF metric, the datagram
  4114.                 shortest-path trees also keep track of  the  TTL  values
  4115.                 between  the root (datagram source) and all destinations
  4116.                 (group members). This enables more efficient implementa-
  4117.                 tion of IP multicast's "expanding ring search" (see Sec-
  4118.                 tion 2.3.4).
  4119.  
  4120.             o   In the multicast case, the algorithm is sometimes forced
  4121.                 to  use  the  link  state cost for the reverse direction
  4122.                 (i.e, the  cost  towards,  instead  of  away  from,  the
  4123.                 source).  This  is  because  the  costs of OSPF summary-
  4124.                 link-LSAs and AS external-link-LSAs, which sometime form
  4125.                 the  base of the multicast datagram shortest-path trees,
  4126.                 are specified in the reverse direction (from the  multi-
  4127.                 cast perspective).
  4128.  
  4129.             o   There are potentially many more  datagram  shortest-path
  4130.                 trees  that  need  to be calculated (one for each source
  4131.                 net, destination group and TOS  combination),  than  the
  4132.                 limited  number of unicast SPF trees (one per each TOS).
  4133.                 This is the main reason that the datagram  shortest-path
  4134.                 trees  are  calculated  on demand; it is hoped that this
  4135.                 will spread  the  cost  of  the  SPF  calculations  over
  4136.                 time[31].
  4137.  
  4138.             o   The way that the two algorithms handle TOS is different.
  4139.                 In  the  multicast  case,  if  a  TOS-incapable  node is
  4140.  
  4141.  
  4142.  
  4143. [Moy]                                                          [Page 74]
  4144.  
  4145. Internet Draft        Multicast Extensions to OSPF            March 1993
  4146.  
  4147.  
  4148.                 encountered during the calculation of the TOS 0 datagram
  4149.                 shortest-path  tree,  the  TOS  0 datagram shortest-path
  4150.                 tree is used instead of trying to build the TOS  X  tree
  4151.                 (see  Section  12.2.8).  In  the unicast case, the TOS X
  4152.                 tree is always used, only falling  back  on  the  TOS  0
  4153.                 paths when a TOS X path does not exist.
  4154.  
  4155.     12.3.  Adding local database entries to the forwarding cache
  4156.  
  4157.         After the datagram shortest-path trees have been built for  each
  4158.         attached  area,  the forwarding cache has an upstream node and a
  4159.         list of downstream interfaces. In order to ensure  the  delivery
  4160.         of  the multicast datagram to group members on directly attached
  4161.         networks, the local group database (Section 8.4)  must  then  be
  4162.         scanned  for  possible addition to the list of downstream inter-
  4163.         faces. All local group database entries having Group G as Multi-
  4164.         castGroup  are  examined.   Suppose  [Group G, Network N] is one
  4165.         such entry. If the  calculating  router  (RTX)  is  Network  N's
  4166.         Designated  Router,  then  RTX's Network N interface is added to
  4167.         the list of outgoing interfaces, with a TTL of 1. If the Network
  4168.         N  interface  was already present in the list of outgoing inter-
  4169.         faces, its TTL is simply set to 1.
  4170.  
  4171.         For example, consider the network configuration shown in  Figure
  4172.         4  when  calculating  the  forwarding cache entry for a datagram
  4173.         whose source is Network N4 (e.g., from Host H2) and  destination
  4174.         is  Group  Mb. After calculating the datagram shortest-path tree
  4175.         for Area 1, Router RT2 would have set it upstream node  to  Net-
  4176.         work  N3 and its list of downstream interfaces to NULL. But then
  4177.         looking at its local group database, it would add its Network N2
  4178.         interface with a TTL of 1 to its list of downstream interfaces.
  4179.  
  4180. 13.  Maintaining the forwarding cache
  4181.  
  4182.     A MOSPF router may, for resource reasons, limit the size of its for-
  4183.     warding  cache. At any time cache entries can be purged to make room
  4184.     for newer entries, since the purged entries can  always  be  rebuilt
  4185.     when  necessary.  This  memo does not specify an algorithm to select
  4186.     which entries to purge. However, care should be taken to ensure that
  4187.     any  particular  entry  is  not  continually rebuilt and then purged
  4188.     again (i.e., thrashing should be avoided).
  4189.  
  4190.     The building of the forwarding cache has been  previously  described
  4191.     in  Section  12.  There are events that force one or more forwarding
  4192.     cache entries to be deleted; these events are described below.  Note
  4193.     that deleted cache entries will be rebuilt on an as-needed basis.
  4194.  
  4195.  
  4196.  
  4197.  
  4198.  
  4199. [Moy]                                                          [Page 75]
  4200.  
  4201. Internet Draft        Multicast Extensions to OSPF            March 1993
  4202.  
  4203.  
  4204.     o   When the internal topology of the MOSPF system changes, all for-
  4205.         warding  cache entries must be deleted. This is because internal
  4206.         topology  changes  may  invalidate  the  previously   calculated
  4207.         datagram shortest-path trees. Since the multicast routing calcu-
  4208.         lation depends on the result of  the  unicast  routing  calcula-
  4209.         tions,  the forwarding cache should be cleared after the unicast
  4210.         routing table is rebuilt.  Internal topology changes  are  indi-
  4211.         cated  when  both  a) a new instance of either a router-LSA or a
  4212.         network-LSA is received and b) the contents of  the  new  adver-
  4213.         tisement  (other  than  the  LS  age,  LS sequence number and LS
  4214.         checksum fields) are different from the previous instance.  This
  4215.         covers  routers  and links going up or down, routers that change
  4216.         from being multicast-incapable to being multicast-capable, etc.
  4217.  
  4218.     o   When a Type 3 summary-link-LSA (network summary) changes,  those
  4219.         forwarding  cache  entries specifying datagram sources belonging
  4220.         to the range of addresses  described  by  the  updated  summary-
  4221.         link-LSA must be deleted. See Sections 12.2.3 and 12.2.5.
  4222.  
  4223.     o   When the content of an AS external-link-LSA  changes,  all  for-
  4224.         warding  cache  entries specifying the named external network as
  4225.         datagram source must be deleted.
  4226.  
  4227.     o   When membership in a multicast  group  changes,  all  forwarding
  4228.         cache  entries  for  the particular group must be deleted. Group
  4229.         membership changes are indicated when either a) the content of a
  4230.         group-membership-LSA  changes  or b) an entry in the local group
  4231.         database (see Section 8.4) changes.
  4232.  
  4233.     o   When the cost to an  AS  boundary  router  or  to  a  forwarding
  4234.         address  specified by one or more AS external-link-LSAs changes,
  4235.         all forwarding cache entries specifying an external  network  as
  4236.         datagram  source  must be deleted. In this case, potentially all
  4237.         inter-AS datagram shortest-path trees have been invalidated. The
  4238.         forwarding  cache  entries  should be deleted after the new best
  4239.         cost to the AS boundary router/forwarding address has been  cal-
  4240.         culated.
  4241.  
  4242. 14.  Other additions to the OSPF specification
  4243.  
  4244.     MOSPF requires some modifications to the  base  OSPF  protocol.  All
  4245.     these  modifications are backward-compatible. A router running MOSPF
  4246.     will still interoperate with an OSPF router when forwarding  unicast
  4247.     traffic.  Most  of  the modifications have been described earlier in
  4248.     this document. This section collects together  those  changes  which
  4249.     have yet to be mentioned, organizing them by the affected Section of
  4250.     [OSPF].
  4251.  
  4252.  
  4253.  
  4254.  
  4255. [Moy]                                                          [Page 76]
  4256.  
  4257. Internet Draft        Multicast Extensions to OSPF            March 1993
  4258.  
  4259.  
  4260.     14.1.  The Designated Router
  4261.  
  4262.         This functionality is described in Section  7.3  of  [OSPF].  In
  4263.         OSPF,  a  network's Designated Router has two specialized roles.
  4264.         First, it originates the network's network-LSA. Second, it  con-
  4265.         trols the flooding on the network, in that all of the routers on
  4266.         the network synchronize with  the  Designated  Router  (and  the
  4267.         Backup Designated Router) only.  For these reasons[32], when one
  4268.         or more of the network's routers are running MOSPF,  the  Desig-
  4269.         nated  Router should be running MOSPF also.  This can be ensured
  4270.         by assigning all non-multicast routers the Router Priority of 0.
  4271.  
  4272.         In MOSPF, the Designated Router also has the additional  respon-
  4273.         sibility of monitoring the network's multicast group membership.
  4274.         This is done by periodically sending  Host  Membership  Queries,
  4275.         and  receiving  Host Membership Reports in response (see Section
  4276.         9). This is yet another reason why the Designated Router must be
  4277.         multicast-capable.
  4278.  
  4279.     14.2.  Sending Hello packets
  4280.  
  4281.         This functionality is described in  Section  9.5  of  [OSPF].  A
  4282.         MOSPF  router  sets the MC-bit in the Options field of its Hello
  4283.         packets. This indicates that the router is multicast-capable; it
  4284.         does   not   necessarily  indicate  the  state  of  the  sending
  4285.         interface's IPMulticastForwarding parameter (see  Section  B.2).
  4286.         Setting  the MC-bit in Hellos is done strictly for informational
  4287.         purposes. Neighbors receiving the router's Hello packets do  not
  4288.         act  on  the  state  of  the  MC-bit.  A  neighbor's  multicast-
  4289.         capability is learned instead during the Database Exchange  Pro-
  4290.         cess (see Section 14.4).
  4291.  
  4292.     14.3.  The Neighbor state machine
  4293.  
  4294.         This functionality is described in Section 10.3 of [OSPF].  When
  4295.         a  neighbor enters state Exchange, the neighbor Database summary
  4296.         list is initialized (see the OSPF neighbor FSM entry for  State:
  4297.         ExStart  and Event: NegotiationDone). This list describes of the
  4298.         portion of the router's link state database  that  needs  to  be
  4299.         synchronized   with  the  neighbor.   Group-membership-LSAs  are
  4300.         included in the neighbor Database summary list if  and  only  if
  4301.         the  neighbor  is  multicast-capable.  The  neighbor's multicast
  4302.         capability is  learned  by  examining  the  neighbor's  Database
  4303.         Description packets (see Section 14.4).
  4304.  
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311. [Moy]                                                          [Page 77]
  4312.  
  4313. Internet Draft        Multicast Extensions to OSPF            March 1993
  4314.  
  4315.  
  4316.     14.4.  Receiving Database Description packets
  4317.  
  4318.         This functionality is described in Section  10.6  of  [OSPF].  A
  4319.         neighbor's  multicast-capability  is  learned  through  received
  4320.         Database Description  packets.  When  the  Database  Description
  4321.         packet is received that transitions the neighbor from ExStart to
  4322.         Exchange, the state of the MC-bit in the packet's Options  field
  4323.         is  examined.  The  neighbor is multicast-capable if and only if
  4324.         the MC-bit is set.
  4325.  
  4326.         The neighbor's  multicast  capability  controls  whether  group-
  4327.         membership-LSAs  are summarized to the neighbor during the Data-
  4328.         base Exchange process (see Section  14.3),  and  whether  group-
  4329.         membership-LSAs  are flooded to the neighbor during the flooding
  4330.         process (see Section 10.2).
  4331.  
  4332.     14.5.  Sending Database Description packets
  4333.  
  4334.         This functionality is described in Section  10.8  of  [OSPF].  A
  4335.         MOSPF  router  sets the MC-bit in the Options field of its Data-
  4336.         base Description packets. This indicates to its adjacent  neigh-
  4337.         bors  that  the  router is multicast-capable; it does not neces-
  4338.         sarily indicate the state of the  sending  interface's  IPMulti-
  4339.         castForwarding parameter (see Section B.2).
  4340.  
  4341.         When a router goes from being  multicast-capable  to  multicast-
  4342.         incapable,  or  vice-versa,  it  must  indicate this fact to its
  4343.         adjacent neighbors by restarting the Database  Description  pro-
  4344.         cess  (i.e., rolling back the state of all adjacent neighbors to
  4345.         Exstart).
  4346.  
  4347.     14.6.  Originating Router-LSAs
  4348.  
  4349.         This functionality is described in Section 12.4.1 of  [OSPF].  A
  4350.         MOSPF  router  sets  the  MC-bit  in  the  Options  field of its
  4351.         router-LSA. This allows the router to be  included  in  datagram
  4352.         shortest-path trees (see Step 5a of Section 12.2).
  4353.  
  4354.         In addition, MOSPF has introduced a new flag in the router-LSA's
  4355.         rtype  field:  the  W-bit.  When the W-bit is set, the router is
  4356.         included on all datagram shortest-path trees, regardless of mul-
  4357.         ticast  group  (see  Section  12.2.6). Such a router is called a
  4358.         wild-card multicast receiver. The router sets the W-bit when  it
  4359.         wishes  to receive all multicast datagrams, regardless of desti-
  4360.         nation. This will sometimes be true of inter-area multicast for-
  4361.         warders  (see  Section  3.1),  and inter-AS multicast forwarders
  4362.         (see Section 4).
  4363.  
  4364.  
  4365.  
  4366.  
  4367. [Moy]                                                          [Page 78]
  4368.  
  4369. Internet Draft        Multicast Extensions to OSPF            March 1993
  4370.  
  4371.  
  4372.         A router must originate a new instance of its  router-LSA  when-
  4373.         ever  an  event  occurs  that would invalidate the LSA's current
  4374.         contents. In particular, if the router's multicast capability or
  4375.         its ability to function as either an inter-area or inter-AS mul-
  4376.         ticast forwarder changes, its router-LSA must be reoriginated.
  4377.  
  4378.     14.7.  Originating Network-LSAs
  4379.  
  4380.         This functionality is described in Section 12.4.2 of [OSPF].  In
  4381.         OSPF,  a  transit  network's  network-LSA  is  originated by the
  4382.         network's Designated Router. The Designated Router sets the  MC-
  4383.         bit  in the Options field of the network-LSA if and only if both
  4384.         a) the Designated Router  is  multicast-capable  (i.e.,  running
  4385.         MOSPF)  and  b) the Designated Router's interface's IPMulticast-
  4386.         Forwarding parameter has been set to a value other than disabled
  4387.         (see  Section B.2). When the network-LSA has the MC-bit set, the
  4388.         network can be included in  datagram  shortest-path  trees  (see
  4389.         Section 12.2.6).
  4390.  
  4391.         It is intended that all routers attached  to  a  common  network
  4392.         agree  on  the  network's IPMulticastForwarding capability. How-
  4393.         ever, this agreement is not enforced. When there  are  disagree-
  4394.         ments, incorrect routing of multicast datagrams can result.
  4395.  
  4396.     14.8.  Originating Summary-link-LSAs
  4397.  
  4398.         This functionality is described in  Section  12.4.3  of  [OSPF].
  4399.         Inter-area  multicast  forwarders  always  set the MC-bit in the
  4400.         Options field of their summary-link-LSAs, regardless of  whether
  4401.         the   path   described   by  the  summary-link-LSA  is  actually
  4402.         multicast-capable. Indeed, it  is  possible  that  there  is  no
  4403.         multicast-capable  path  to the described destination. All other
  4404.         area border routers (ones that are not inter-area multicast for-
  4405.         warders)  clear  the  MC-bit  in  the  Options  field  of  their
  4406.         summary-link-LSAs.
  4407.  
  4408.         If its MC-bit is clear, the summary-link-LSA will  not  be  used
  4409.         when  initializing the candidate list in Sections 12.2.2, 12.2.3
  4410.         and 12.2.5.
  4411.  
  4412.     14.9.  Originating AS external-link-LSAs
  4413.  
  4414.         This functionality is described in  Section  12.4.4  of  [OSPF].
  4415.         Unlike  in  summary-link-LSAs,  an  inter-AS multicast forwarder
  4416.         should clear the MC-bit in the Options field of one  of  its  AS
  4417.         external-link-LSAs  if  it  is known that there is no multicast-
  4418.         capable path  from  the  described  destination  to  the  router
  4419.         itself.  This  knowledge  may possibly be obtained, for example,
  4420.  
  4421.  
  4422.  
  4423. [Moy]                                                          [Page 79]
  4424.  
  4425. Internet Draft        Multicast Extensions to OSPF            March 1993
  4426.  
  4427.  
  4428.         from an inter-AS multicast routing algorithm  (see  Section  4).
  4429.         If  the  inter-AS  multicast  forwarder  is  unsure of whether a
  4430.         multicast-capable path exists between the described  destination
  4431.         and  the  router  itself,  the  MC-bit  should  be set in the AS
  4432.         external-link-LSA.  All other AS boundary routers (ones that are
  4433.         not  inter-AS  multicast  forwarders)  clear  the  MC-bit in the
  4434.         Options field of their AS external-link-LSAs.
  4435.  
  4436.         If its MC-bit is clear, the AS  external-link-LSA  will  not  be
  4437.         used when initializing the candidate list in Section 12.2.4.
  4438.  
  4439.         When multicast connectivity to an external  destination  exists,
  4440.         but no unicast connectivity, an AS external-link-LSA can be ori-
  4441.         ginated having its MC-bit set and specifying a cost of  LSInfin-
  4442.         ity. Such an AS external-link-LSA will still be used by the mul-
  4443.         ticast routing calculation (see Section 12.2.4).  As  a  result,
  4444.         when  a  MOSPF  router wishes to stop advertising an AS external
  4445.         destination, it must use the premature aging procedure specified
  4446.         in  Section  14.1  of  [OSPF], rather than simply setting the AS
  4447.         external-link-LSA's cost to LSInfinity.
  4448.  
  4449.     14.10.  Next step in the flooding procedure
  4450.  
  4451.         This functionality is  described  in  Section  13.3  of  [OSPF].
  4452.         Group-membership-LSAs  are  specific  to a OSPF single area, and
  4453.         are flooded to multicast-capable routers only. When  flooding  a
  4454.         group-membership-LSA,  Section 13.3 of the OSPF specification is
  4455.         modified as follows: 1) The list of interfaces  examined  during
  4456.         flooding  (called  the  eligible  interfaces  in Section 13.3 of
  4457.         [OSPF]) is the set of all interfaces attaching to  Area  A  (the
  4458.         area  that  the  group-membership-LSA is received from), just as
  4459.         for router-LSAs, network-LSAs  and  summary-link-LSAs.  2)  When
  4460.         examining  each  interface, a group-membership-LSA is added to a
  4461.         neighbor's link state retransmission list if and only if both a)
  4462.         Step 1d of [OSPF]'s Section 13.3 is reached for the neighbor and
  4463.         b) the neighbor is multicast-capable. The  neighbor's  multicast
  4464.         capability  is  discovered  during the Database Exchange process
  4465.         (see Section 14.4).
  4466.  
  4467.         Note that, since on broadcast networks Link State Update packets
  4468.         are  sent  initially  as  multicasts,  non-multicast routers may
  4469.         receive group-membership-LSAs.  However,  non-multicast  routers
  4470.         will  simply  drop  the  group-membership-LSAs,  for  reasons of
  4471.         unrecognized LS type (see Step 2 of [OSPF]'s Section  13).  Link
  4472.         State acknowledgments for group-membership-LSAs are not expected
  4473.         from non-multicast routers, and group-membership-LSAs will never
  4474.         be  retransmitted  to  non-multicast routers, since the LSAs are
  4475.         not added to these routers' link state retransmission lists (see
  4476.  
  4477.  
  4478.  
  4479. [Moy]                                                          [Page 80]
  4480.  
  4481. Internet Draft        Multicast Extensions to OSPF            March 1993
  4482.  
  4483.  
  4484.         above paragraph).
  4485.  
  4486.         For more information on flooding group-membership-LSAs, see Sec-
  4487.         tion 10.2.
  4488.  
  4489.     14.11.  Virtual links
  4490.  
  4491.         This functionality is described in Section 15 of [OSPF]. When  a
  4492.         MOSPF  router  (i.e.,  multicast-capable router) is both an area
  4493.         border router and an endpoint of a virtual link whose other end-
  4494.         point is also multicast capable, the router must then also be an
  4495.         inter-area multicast forwarder. This is necessary to ensure that
  4496.         multicast datagrams will flow through the virtual link's transit
  4497.         area, from one  endpoint  to  the  other.  When  the  backbone's
  4498.         datagram  shortest-path  tree is constructed in Section 12.1, it
  4499.         is assumed that virtual links are capable of  forwarding  multi-
  4500.         cast datagrams whenever both endpoints are multicast-capable.
  4501.  
  4502.  
  4503.  
  4504.  
  4505.  
  4506.  
  4507.  
  4508.  
  4509.  
  4510.  
  4511.  
  4512.  
  4513.  
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526.  
  4527.  
  4528.  
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535. [Moy]                                                          [Page 81]
  4536.  
  4537. Internet Draft        Multicast Extensions to OSPF            March 1993
  4538.  
  4539.  
  4540. 15.  References
  4541.  
  4542.     [Bharath-Kumar] Bharath-Kumar, K. and Jaffe, J. M. Routing to multi-
  4543.                     ple destinations in Computer Networks. IEEE Transac-
  4544.                     tions on Communications, COM-31[3], March 1983.
  4545.  
  4546.     [Deering]       Deering, S. Multicast Routing in  Internetworks  and
  4547.                     Extended  LANs.   SIGCOMM  Summer  1988 Proceedings,
  4548.                     August 1988.
  4549.  
  4550.     [Deering2]      Deering, S. Multicast routing in a  datagram  inter-
  4551.                     network.  Stanford Technical Report STAN-CS-92-1415,
  4552.                     Department of Computer Science, Stanford University,
  4553.                     December 1991.
  4554.  
  4555.     [OSPF]          Moy, J. OSPF Version 2. Internet Draft. March 1993.
  4556.  
  4557.     [RFC 1075]      Waitzman, D., Partridge, C. and Deering, S. Distance
  4558.                     Vector   Multicast   Routing   Protocol.  RFC  1175,
  4559.                     November 1988.
  4560.  
  4561.     [RFC 1112]      Deering, S.E.Host extensions  for  IP  multicasting.
  4562.                     RFC 1112, May 1988.
  4563.  
  4564.     [RFC 1209]      Piscitello, D.M. Transmission of IP  datagrams  over
  4565.                     the SMDS Service.  RFC 1209, March 1991.
  4566.  
  4567.     [RFC 1340]      Reynolds, J. and Postel, J.  Assigned  Numbers.  RFC
  4568.                     1340, July 1992.
  4569.  
  4570.     [RFC 1390]      Katz, D. Transmission of IP and ARP over  FDDI  Net-
  4571.                     works. RFC 1390, January 1993.
  4572.  
  4573.  
  4574.  
  4575.  
  4576.  
  4577.  
  4578.  
  4579.  
  4580.  
  4581.  
  4582.  
  4583.  
  4584.  
  4585.  
  4586.  
  4587.  
  4588.  
  4589.  
  4590.  
  4591. [Moy]                                                          [Page 82]
  4592.  
  4593. Internet Draft        Multicast Extensions to OSPF            March 1993
  4594.  
  4595.  
  4596. Footnotes
  4597.  
  4598.     [1]Actually, OSPF allows a separate link cost to be  configured  for
  4599.     each  TOS. MOSPF then potentially calculates separate paths for each
  4600.     TOS. For details, see Section 6.2.
  4601.  
  4602.     [2]We also assume in this section  that  the  pictured  multi-access
  4603.     networks provide data-link multicast/broadcast services.
  4604.  
  4605.     [3]Note that if N3 were a non-broadcast network,  Router  RT3  would
  4606.     send  separate  copies of the datagram to routers RT1 and RT2. Since
  4607.     the IGMP protocol is not defined on  non-broadcast  networks,  there
  4608.     could in this case be no Group B member attached to Network N3. How-
  4609.     ever the multicast datagram would still be delivered to the Group  B
  4610.     members attached to networks N1 and N2.
  4611.  
  4612.     [4]Actually, in MOSPF there is a separate forwarding cache entry for
  4613.     each combination of source, destination and TOS. For a discussion of
  4614.     TOS-based multicast routing, see Section 6.2.
  4615.  
  4616.     [5]The discussion in this section omits mention of the Backup Desig-
  4617.     nated  Router's  role  in the IGMP protocol. While the Backup Desig-
  4618.     nated Router does not send IGMP Host  Membership  Queries,  it  does
  4619.     listen  to  IGMP  Host  Membership  Reports, building "shadow" local
  4620.     group database entries in the process. These entries do not lead  to
  4621.     group-membership-LSAs,  nor  do they influence delivery of multicast
  4622.     datagrams, but are merely maintained to  ease  the  transition  from
  4623.     Backup Designated Router to Designated Router, should the Designated
  4624.     Router fail. See Sections 2.3.4, 9 and 10 for details.
  4625.  
  4626.     [6]One might imagine building all  possible  datagram  shortest-path
  4627.     trees up front. However, this might be expensive, both in router CPU
  4628.     time and in router memory. It is hoped that  building  the  datagram
  4629.     shortest-path  trees  on  demand  and  caching the results will ease
  4630.     demands on router resources by spreading out the calculations over a
  4631.     longer period of time.
  4632.  
  4633.     [7]It is possible that, due to the  existence  of  alternate  paths,
  4634.     several  different  shortest-path trees are available. MOSPF depends
  4635.     on all routers constructing the exact same shortest path  tree.  For
  4636.     that  reason, tie-breaking schemes have been implemented during tree
  4637.     construction to ensure that identical trees result. See  Section  12
  4638.     for more details.
  4639.  
  4640.     [8]Note that the expanding ring search yields the nearest server  in
  4641.     terms of hop count, but not necessarily in terms of the OSPF metric.
  4642.  
  4643.     [9]This means that in MOSPF, just as in OSPF, the only kind of  link
  4644.  
  4645.  
  4646.  
  4647. [Moy]                                                          [Page 83]
  4648.  
  4649. Internet Draft        Multicast Extensions to OSPF            March 1993
  4650.  
  4651.  
  4652.     state  advertisement  that  can  be  flooded between areas is the AS
  4653.     external-link-LSA.
  4654.  
  4655.     [10]A router indicates that it is a wild-card multicast receiver  by
  4656.     setting the appropriate flag in its router-LSA. See Section 14.6 for
  4657.     details.
  4658.  
  4659.     [11]This is not quite true. As we shall see, any inter-AS  multicast
  4660.     forwarders  belonging  to  the  backbone are designated as wild-card
  4661.     multicast receivers. See Section 4.
  4662.  
  4663.     [12]It is possible that through the operation of an inter-AS  multi-
  4664.     cast routing protocol, Router RT7 knows that it does not have multi-
  4665.     cast connectivity to Network N15 (even though it has unicast connec-
  4666.     tivity).  In this case, RT7 would not advertise the external link to
  4667.     N15 as being multicast capable.
  4668.  
  4669.     [13]Synchronization of the IPMulticastForwarding interface parameter
  4670.     is  not  enforced by the MOSPF protocol, since it is not included in
  4671.     the contents of a MOSPF router's Hello packets.
  4672.  
  4673.     [14]Actually, when multiple IP networks have been  assigned  to  the
  4674.     same  physical  network, the first thing that needs to be done is to
  4675.     associate an IP network with the received  Host  Membership  Report.
  4676.     This  is  done in the same way that a receiving interface is associ-
  4677.     ated with a received multicast datagram; see Section 11.1.
  4678.  
  4679.     [15]For this reason when a transit network has  both  MOSPF  routers
  4680.     and  non-multicast  OSPF  routers  attached, care should be taken to
  4681.     ensure that a MOSPF router is elected Designated Router. This can be
  4682.     accomplished  through  proper  setting  of  the  routers' configured
  4683.     Router Priority.
  4684.  
  4685.     [16]Note that just because these advertisements exist  in  the  link
  4686.     state database, it does not mean that the Group G members are reach-
  4687.     able.  Reachability does not enter into the building of the  transit
  4688.     vertex  list, in order to simplify the calculation. This is a trade-
  4689.     off. As a result, some multicast datagrams may be forwarded  further
  4690.     than  necessary,  when  the  described  Group G members actually are
  4691.     unreachable.
  4692.  
  4693.     [17]Since the Designated Router controls flooding  on  the  network,
  4694.     this  is  another reason to ensure that a MOSPF router is elected as
  4695.     Designated Router.
  4696.  
  4697.     [18]In other words, group-membership-LSAs will never be  retransmit-
  4698.     ted to non-multicast routers.
  4699.  
  4700.  
  4701.  
  4702.  
  4703. [Moy]                                                          [Page 84]
  4704.  
  4705. Internet Draft        Multicast Extensions to OSPF            March 1993
  4706.  
  4707.  
  4708.     [19]This last step will not be necessary if the configuration guide-
  4709.     lines presented in Section 6.5 are followed.
  4710.  
  4711.     [20]The TOS 0 routing table entry is examined regardless of the  TOS
  4712.     specified by the multicast datagram.
  4713.  
  4714.     [21]It is assumed that a MOSPF router that wants to stop advertising
  4715.     a route to an external destination will use the premature aging pro-
  4716.     cedure specified in Section 14.1 of [OSPF], rather than setting  the
  4717.     AS external-link-LSA's cost to LSInfinity.
  4718.  
  4719.     [22]This preference ordering is used in Step 5c of Section 12.2.
  4720.  
  4721.     [23]No attempt is made to match the links' two halves. See Step 5d.
  4722.  
  4723.     [24]However, a summary-link-LSA is eligible for matching even if the
  4724.     MC-bit in its Options field is clear.
  4725.  
  4726.     [25]Costs may have both a Type 2 and a Type 1 component; the Type  2
  4727.     component is always most significant.
  4728.  
  4729.     [26]This case mirrors the SourceIntraArea candidate list initializa-
  4730.     tion in Section 12.2.1.
  4731.  
  4732.     [27]This case mirrors the SourceInterArea1 candidate list  initiali-
  4733.     zation in Section 12.2.2.
  4734.  
  4735.     [28]This case mirrors the SourceInterArea2 candidate list  initiali-
  4736.     zation in Section 12.2.3.
  4737.  
  4738.     [29]Note that selecting the upstream node in  this  manner  enforces
  4739.     the inter-area routing architecture outlined in Section 3.1. Namely,
  4740.     the multicast datagram is forwarded from the source area,  over  the
  4741.     backbone  and  then  into the non-backbone areas. This is similar to
  4742.     the "hub and spoke" architecture for unicast forwarding described in
  4743.     Section 3.2 of [OSPF].
  4744.  
  4745.     [30]This procedure seems backwards. One would expect that the TOS  X
  4746.     datagram  tree  would  be  built first. However, the SPF calculation
  4747.     must ensure that all routers participating in the forwarding of that
  4748.     datagram, both TOS-capable and non-TOS-capable, build the same tree.
  4749.     Since it is known that the non-TOS-capable routers will use the  TOS
  4750.     0  tree,  the  only  safe  way to use the TOS X tree is when you are
  4751.     guaranteed that the non-TOS-capable routers will decline to  forward
  4752.     the  datagram.  This  guarantee  is  clearly met when there are only
  4753.     TOS-capable routers on the TOS 0 datagram tree.
  4754.  
  4755.     [31]Indeed, there will also be those cases  where  the  router,  not
  4756.  
  4757.  
  4758.  
  4759. [Moy]                                                          [Page 85]
  4760.  
  4761. Internet Draft        Multicast Extensions to OSPF            March 1993
  4762.  
  4763.  
  4764.     being  on  a particular datagram shortest-path tree, will never have
  4765.     to calculate the particular tree, since the router will not  receive
  4766.     the datagram in the first place.
  4767.  
  4768.     [32]Group-membership-LSAs are not processed by non-multicast routers
  4769.     (see  Section  10.2). Also, if the Designated Router was not running
  4770.     the multicast extensions, multicast datagrams would not be forwarded
  4771.     over the network because its network-LSA would have its MC-bit clear
  4772.     (see Step 5a in Section 12.2).
  4773.  
  4774.  
  4775.  
  4776.  
  4777.  
  4778.  
  4779.  
  4780.  
  4781.  
  4782.  
  4783.  
  4784.  
  4785.  
  4786.  
  4787.  
  4788.  
  4789.  
  4790.  
  4791.  
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.  
  4808.  
  4809.  
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815. [Moy]                                                          [Page 86]
  4816.  
  4817. Internet Draft        Multicast Extensions to OSPF            March 1993
  4818.  
  4819.  
  4820. A. Data Formats
  4821.  
  4822.     This section documents the format of MOSPF protocol packets and link
  4823.     state  advertisements  (LSAs). All changes and additions made to the
  4824.     OSPF Version 2 data formats have been made in a  backward-compatible
  4825.     manner.  In other words, multicast routers running MOSPF can intero-
  4826.     perate with (non-multicast) OSPF Version 2 routers  when  forwarding
  4827.     regular (unicast) IP data traffic.
  4828.  
  4829.     The MOSPF packet  formats  are  the  same  as  for  OSPF  Version  2
  4830.     (described  in Appendix A of [OSPF]). One additional option has been
  4831.     added to the Options field that appears in OSPF Hello packets, Data-
  4832.     base Description packets and all link state advertisements. This new
  4833.     option indicates a router's/network's multicast capability,  and  is
  4834.     documented  in  Section  A.1.   The  presence  of this new option is
  4835.     ignored by all non-multicast routers.
  4836.  
  4837.     To support MOSPF, one of OSPF's link state advertisements  has  been
  4838.     modified,  and  a  new  link state advertisement has been added. The
  4839.     format of the router-LSA has been  modified  (see  Section  A.2)  to
  4840.     include a new flag indicating whether the router is a wild-card mul-
  4841.     ticast receiver. A new link state advertisement, called  the  group-
  4842.     membership-LSA,  has  been added to pinpoint multicast group members
  4843.     in the link  state  database.  This  new  advertisement  is  neither
  4844.     flooded   nor   processed   by  non-multicast  routers.  The  group-
  4845.     membership-LSA is documented in Section A.3.
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854.  
  4855.  
  4856.  
  4857.  
  4858.  
  4859.  
  4860.  
  4861.  
  4862.  
  4863.  
  4864.  
  4865.  
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871. [Moy]                                                          [Page 87]
  4872.  
  4873. Internet Draft        Multicast Extensions to OSPF            March 1993
  4874.  
  4875.  
  4876. A.1 The Options field
  4877.  
  4878.     The OSPF Options field is present in OSPF  Hello  packets,  Database
  4879.     Description  packets  and all link state advertisements. The Options
  4880.     field enables OSPF routers to  support  (or  not  support)  optional
  4881.     capabilities,  and  to  communicate  their capability level to other
  4882.     OSPF routers. Through this mechanism routers of differing  capabili-
  4883.     ties can be mixed within an OSPF routing domain.
  4884.  
  4885.     When used in Hello packets, the Options field  allows  a  router  to
  4886.     reject  a  neighbor because of a capability mismatch. Alternatively,
  4887.     when capabilities are exchanged in Database  Description  packets  a
  4888.     router  can  choose  not  to forward certain LSA types to a neighbor
  4889.     because of its reduced functionality. Lastly,  listing  capabilities
  4890.     in LSAs allows routers to route traffic around reduced functionality
  4891.     routers, by excluding them from parts of the routing table  calcula-
  4892.     tion.
  4893.  
  4894.     Three capabilities are currently defined. For each  capability,  the
  4895.     effect  of  the  capability's  appearance (or lack of appearance) in
  4896.     Hello packets, Database Description packets and  link  state  adver-
  4897.     tisements  is specified below. For example, the ExternalRoutingCapa-
  4898.     bility (below called the E-bit) has meaning only in OSPF Hello pack-
  4899.     ets.
  4900.  
  4901.                      +---+---+---+---+---+---+---+---+
  4902.                      | * | * | * | * | * |MC | E | T |
  4903.                      +---+---+---+---+---+---+---+-+-+
  4904.  
  4905.                           The OSPF Options field
  4906.  
  4907.  
  4908.     o   T-bit. This describes the router's TOS capability. If the  T-bit
  4909.         is  reset,  then  the router supports only a single TOS (TOS 0).
  4910.         Such a router is also said to be incapable of  TOS-routing.  The
  4911.         absence  of the T-bit in a router links advertisement causes the
  4912.         router to be skipped when building a non-zero TOS  shortest-path
  4913.         tree.  In  other words, routers incapable of TOS routing will be
  4914.         avoided  as  much  as  possible  when  forwarding  data  traffic
  4915.         requesting a non-zero TOS. The absence of the T-bit in a summary
  4916.         link advertisement or an AS external  link  advertisement  indi-
  4917.         cates  that  the  advertisement is describing a TOS 0 route only
  4918.         (and not routes for non-zero TOS).
  4919.  
  4920.     o   E-bit.  AS  external  link  advertisements   are   not   flooded
  4921.         into/through OSPF stub areas. The E-bit ensures that all members
  4922.         of a stub area agree on that area's configuration. The E-bit  is
  4923.         meaningful  only  in OSPF Hello packets. When the E-bit is reset
  4924.  
  4925.  
  4926.  
  4927. [Moy]                                                          [Page 88]
  4928.  
  4929. Internet Draft        Multicast Extensions to OSPF            March 1993
  4930.  
  4931.  
  4932.         in the Hello packet sent out a particular  interface,  it  means
  4933.         that  the  router will neither send nor receive AS external link
  4934.         state advertisements on that  interface  (in  other  words,  the
  4935.         interface  connects to a stub area). Two routers will not become
  4936.         neighbors unless they agree on the state of the E-bit.
  4937.  
  4938.     o   MC-bit. The MC-bit describes the  multicast  capability  of  the
  4939.         various  pieces of the OSPF routing domain. When calculating the
  4940.         path of multicast datagrams, only those  link  state  advertise-
  4941.         ments  having  their  MC-bit set are used. In addition, a router
  4942.         uses the MC-bit in its  Database  Description  packets  to  tell
  4943.         adjacent  neighbors  whether  the router will participate in the
  4944.         flooding of the new group-membership-LSAs.
  4945.  
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.  
  4958.  
  4959.  
  4960.  
  4961.  
  4962.  
  4963.  
  4964.  
  4965.  
  4966.  
  4967.  
  4968.  
  4969.  
  4970.  
  4971.  
  4972.  
  4973.  
  4974.  
  4975.  
  4976.  
  4977.  
  4978.  
  4979.  
  4980.  
  4981.  
  4982.  
  4983. [Moy]                                                          [Page 89]
  4984.  
  4985. Internet Draft        Multicast Extensions to OSPF            March 1993
  4986.  
  4987.  
  4988. A.2 Router-LSA
  4989.  
  4990.     An OSPF router originates a router-LSA into  each  of  its  attached
  4991.     areas.  The  router-LSA describes the state and cost of the router's
  4992.     interfaces to the area. The contents of the router-LSA are described
  4993.     in  detail  in  Section  A.4.2  of  [OSPF].  There  are flags in the
  4994.     router-LSA that indicate whether the router is  either  a)  an  area
  4995.     border  router  or  b) an AS boundary router or c) the endpoint of a
  4996.     virtual link. One more flag has been added  to  the  router-LSA  for
  4997.     MOSPF;  it  is  called  bit W below. This flag indicates whether the
  4998.     router wishes to receive all multicast datagrams regardless of  des-
  4999.     tination (i.e., is a wild-card multicast receiver).
  5000.  
  5001.         0                   1                   2                   3
  5002.         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  5003.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5004.        |            LS age             |     Options   |       1       |
  5005.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5006.        |                        Link State ID                          |
  5007.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5008.        |                     Advertising Router                        |
  5009.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5010.        |                     LS sequence number                        |
  5011.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5012.        |         LS checksum           |             length            |
  5013.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5014.        |    rtype      |        0      |            # links            |
  5015.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
  5016.        |                          Link ID                              | P
  5017.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ E
  5018.        |                         Link Data                             | R
  5019.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5020.        |     Type      |     # TOS     |        TOS 0 metric           | #
  5021.      + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ L
  5022.      # |      TOS      |        0      |            metric             | I
  5023.      T +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ N
  5024.      O |                              ...                              | K
  5025.      S +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ S
  5026.      | |      TOS      |        0      |            metric             | |
  5027.      + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
  5028.        |                              ...                              |
  5029.  
  5030.                                 The router LSA
  5031.  
  5032.  
  5033.  
  5034.  
  5035.  
  5036.  
  5037.  
  5038.  
  5039. [Moy]                                                          [Page 90]
  5040.  
  5041. Internet Draft        Multicast Extensions to OSPF            March 1993
  5042.  
  5043.  
  5044.                      +---+---+---+---+---+---+---+---+
  5045.                      | * | * | * | * | W | V | E | B |
  5046.                      +---+---+---+---+---+---+---+-+-+
  5047.  
  5048.                                 The rtype field
  5049.  
  5050.     The following defines the flags found in the rtype field. Each  flag
  5051.     classifies the router by function:
  5052.  
  5053.     o   bit B. When set, the router is an area border router (B  is  for
  5054.         border). These routers forward unicast data traffic between OSPF
  5055.         areas.
  5056.  
  5057.     o   bit E. When set, the router is an AS boundary router (E  is  for
  5058.         external).  These  routers  forward unicast data traffic between
  5059.         Autonomous Systems.
  5060.  
  5061.     o   bit V. When set, the router is an endpoint of an active  virtual
  5062.         link  (V  is  for  virtual) which uses the described area as its
  5063.         Transit area.
  5064.  
  5065.     o   bit W. When set, the router is a wild-card  multicast  receiver.
  5066.         These  routers  receive  all  multicast datagrams, regardless of
  5067.         destination.  Inter-area multicast forwarders and inter-AS  mul-
  5068.         ticast  forwarders  are  sometimes wild-card multicast receivers
  5069.         (see Sections 3 and 4).
  5070.  
  5071.  
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.  
  5088.  
  5089.  
  5090.  
  5091.  
  5092.  
  5093.  
  5094.  
  5095. [Moy]                                                          [Page 91]
  5096.  
  5097. Internet Draft        Multicast Extensions to OSPF            March 1993
  5098.  
  5099.  
  5100. A.3 Group-membership-LSA
  5101.  
  5102.     Group-membership-LSAs are the  Type  6  link  state  advertisements.
  5103.     Group-membership-LSAs  are  specific to a particular OSPF area. They
  5104.     are never flooded beyond  their  area  of  origination.  A  router's
  5105.     group-membership-LSA for Area A indicates its directly attached net-
  5106.     works which belong to Area A and contain  members  of  a  particular
  5107.     multicast group. A router originates a group-membership-LSA for mul-
  5108.     ticast group D when the following conditions are met  for  at  least
  5109.     one directly attached network: 1) the router has been elected Desig-
  5110.     nated Router for the network and 2) at least one host on the network
  5111.     has joined Group D via the IGMP protocol.
  5112.  
  5113.     A router may also originate a group-membership-LSA for  Group  D  if
  5114.     the router itself has internal applications belonging to Group D. In
  5115.     addition, area border routers originate  group-membership-LSAs  into
  5116.     the  backbone  area  when  there  are  group members in the router's
  5117.     attached non-backbone areas. See Section  10  for  more  information
  5118.     concerning the origination of group-membership-LSAs.
  5119.  
  5120.         0                   1                   2                   3
  5121.         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  5122.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5123.        |            LS age             |     Options   |       6       |
  5124.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5125.        |              Link State ID = Destination Group                |
  5126.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5127.        |                     Advertising Router                        |
  5128.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5129.        |                     LS sequence number                        |
  5130.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5131.        |         LS checksum           |             length            |
  5132.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5133.        |                        Vertex type                            |
  5134.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5135.        |                         Vertex ID                             |
  5136.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  5137.        |                              ...                              |
  5138.  
  5139.                            The group-membership-LSA
  5140.  
  5141.  
  5142.     The group-membership-LSA consists of the standard 20-byte link state
  5143.     header  (see  Section A.4.1 of [OSPF]) followed by a list of transit
  5144.     vertices   to   label   with   the   multicast   destination.    The
  5145.     advertisement's  Link  State  ID is set to the destination multicast
  5146.     group address. There is no metric associated with the advertisement.
  5147.     Each  transit  vertex  is specified by its Vertex type and Vertex ID
  5148.  
  5149.  
  5150.  
  5151. [Moy]                                                          [Page 92]
  5152.  
  5153. Internet Draft        Multicast Extensions to OSPF            March 1993
  5154.  
  5155.  
  5156.     (see Section 12.1 for an explanation of this terminology):
  5157.  
  5158.     o   Vertex type. Set equal to 1 for a router, and 2  for  a  transit
  5159.         network.   Note that the only router that may be included in the
  5160.         list is the Advertising Router itself.
  5161.  
  5162.     o   Vertex  ID.  For  router  vertices,  this  field  indicates  the
  5163.         router's  OSPF  Router  ID.  For  transit network vertices, this
  5164.         field indicates the  IP  address  of  the  network's  Designated
  5165.         Router.  Note  that the link state advertisement associated with
  5166.         the transit vertex is the LSA whose LS type = Vertex type,  Link
  5167.         State  ID  =  Vertex  ID  and  Advertising  Router  = the group-
  5168.         membership-LSA's Advertising Router.
  5169.  
  5170.  
  5171.  
  5172.  
  5173.  
  5174.  
  5175.  
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.  
  5182.  
  5183.  
  5184.  
  5185.  
  5186.  
  5187.  
  5188.  
  5189.  
  5190.  
  5191.  
  5192.  
  5193.  
  5194.  
  5195.  
  5196.  
  5197.  
  5198.  
  5199.  
  5200.  
  5201.  
  5202.  
  5203.  
  5204.  
  5205.  
  5206.  
  5207. [Moy]                                                          [Page 93]
  5208.  
  5209. Internet Draft        Multicast Extensions to OSPF            March 1993
  5210.  
  5211.  
  5212. B. Configurable Constants
  5213.  
  5214.     This section documents the configurable parameters  used  by  OSPF's
  5215.     multicast  routing  extensions.  These parameters are in addition to
  5216.     the configurable constants used by the  base  OSPF  protocol  (docu-
  5217.     mented  in  Appendix  C  of [OSPF]). An implementation of MOSPF must
  5218.     provide the ability to set these parameters, either through  network
  5219.     management or some other means.
  5220.  
  5221.     B.1 Global parameters
  5222.  
  5223.         The following parameters apply to the router as a whole.
  5224.  
  5225.         o   Multicast capability. An indication of whether the router is
  5226.             running  MOSPF. If the router is running MOSPF, it will per-
  5227.             form the algorithms as set forth in this specification. Oth-
  5228.             erwise, the router is still able to run the basic OSPF algo-
  5229.             rithm (as set forth in [OSPF]), and will be able to  intero-
  5230.             perate with multicast capable routers (see Section 6.1) when
  5231.             forwarding regular (unicast) IP data traffic.
  5232.  
  5233.         o   Inter-area multicast  forwarder.  This  parameter  indicates
  5234.             whether  the router will forward multicast datagrams between
  5235.             OSPF areas. Such a router summarizes group membership infor-
  5236.             mation  to  the  backbone, and acts as a wild-card multicast
  5237.             receiver in all its attached non-backbone areas (see Section
  5238.             3.1).  Not all multicast-capable area border routers need be
  5239.             configured as  inter-area  multicast  forwarders.   However,
  5240.             whenever  both ends of a virtual link are multicast-capable,
  5241.             they must both be configured as  inter-area  multicast  for-
  5242.             warders  (see  Section  14.11).  By  default, all multicast-
  5243.             capable area border routers  are  configured  as  inter-area
  5244.             multicast forwarders.
  5245.  
  5246.         o   Inter-AS  multicast  forwarder.  This  parameter   indicates
  5247.             whether  the  router  forwards  multicast  datagrams between
  5248.             Autonomous Systems. Such a router acts as a wild-card multi-
  5249.             cast  receiver  in all attached areas (see Section 4). It is
  5250.             also assumed that an inter-AS multicast forwarder runs  some
  5251.             kind of inter-AS multicast routing algorithm.
  5252.  
  5253.     B.2 Router interface parameters
  5254.  
  5255.         The following parameters can be configured separately  for  each
  5256.         of the router's OSPF interfaces. Remember that an OSPF interface
  5257.         is the connection between the router and one of its attached  IP
  5258.         networks.   Note  that  the  IPMulticastForwarding  parameter is
  5259.         really a description of the attached network. As such, it should
  5260.  
  5261.  
  5262.  
  5263. [Moy]                                                          [Page 94]
  5264.  
  5265. Internet Draft        Multicast Extensions to OSPF            March 1993
  5266.  
  5267.  
  5268.         be  configured  identically  on all routers attached to a common
  5269.         network; otherwise incorrect routing of multicast datagrams  may
  5270.         result.
  5271.  
  5272.         o   IPMulticastForwarding. This configurable parameter indicates
  5273.             whether  IP multicasts should be forwarded over the attached
  5274.             network, and if so, how the forwarding should be  done.  The
  5275.             parameter can assume one of three possible values: disabled,
  5276.             data-link multicast and data-link unicast. When set to  dis-
  5277.             abled,  IP multicast datagrams will not be forwarded out the
  5278.             interface. When set to  data-link  multicast,  IP  multicast
  5279.             datagrams  will  be  forwarded as data-link multicasts. When
  5280.             set to data-link unicast, IP  multicast  datagrams  will  be
  5281.             forwarded  as data-link unicasts. The default value for this
  5282.             parameter is data-link multicast. The other two settings are
  5283.             for  use  in the special circumstances described in Sections
  5284.             6.3 and 6.4. When set to disabled or to  data-link  unicast,
  5285.             IGMP  group membership is not monitored on the attached net-
  5286.             work.
  5287.  
  5288.         o   IGMPPollingInterval. The number of seconds between IGMP Host
  5289.             Membership  Queries  sent  out  this interface. A multicast-
  5290.             capable router sends IGMP Host Membership Queries only  when
  5291.             it  has been elected Designated Router for the attached net-
  5292.             work. See [RFC 1112] for a discussion  of  this  parameter's
  5293.             value.
  5294.  
  5295.         o   IGMP timeout. If no IGMP Host Membership Reports  have  been
  5296.             heard  on  an  attached  network  for a particular multicast
  5297.             group A after this period  of  time,  the  entry  [Group  A,
  5298.             attached  network]  is deleted from the router's local group
  5299.             database. See Section 9 for more information.
  5300.  
  5301.  
  5302.  
  5303.  
  5304.  
  5305.  
  5306.  
  5307.  
  5308.  
  5309.  
  5310.  
  5311.  
  5312.  
  5313.  
  5314.  
  5315.  
  5316.  
  5317.  
  5318.  
  5319. [Moy]                                                          [Page 95]
  5320.  
  5321. Internet Draft        Multicast Extensions to OSPF            March 1993
  5322.  
  5323.  
  5324. C. Sample datagram shortest-path trees
  5325.  
  5326.     In MOSPF, all routers  must  calculate  exactly  the  same  datagram
  5327.     shortest-path trees. In order to ensure this in internetworks having
  5328.     redundant links, a number of tie-breakers were defined in the  MOSPF
  5329.     routing  table  calculation (see Steps 4 and 5c of Section 12.2, and
  5330.     Sections 12.2.4 and 12.2.7). This section  illustrates  the  use  of
  5331.     these tie-breakers on a sample topology.
  5332.  
  5333.     Three different examples are given. All examples use the same physi-
  5334.     cal  topology and the same set of OSPF interface costs (see the left
  5335.     side of Figure 14). The source of the datagram is always Host H1  on
  5336.     the  network  at the top of the figure (192.9.1.0), and the destina-
  5337.     tion group members are the two hosts labelled with Group Ma  at  the
  5338.     bottom  of the figure. The first case shows an example of intra-area
  5339.     multicast, while the remaining two cases show the influence of  OSPF
  5340.     areas on the path of a multicast datagram.
  5341.  
  5342.  
  5343.  
  5344.  
  5345.  
  5346.  
  5347.  
  5348.  
  5349.  
  5350.  
  5351.  
  5352.  
  5353.  
  5354.  
  5355.  
  5356.  
  5357.  
  5358.  
  5359.  
  5360.  
  5361.  
  5362.  
  5363.  
  5364.  
  5365.  
  5366.  
  5367.  
  5368.  
  5369.  
  5370.  
  5371.  
  5372.  
  5373.  
  5374.  
  5375. [Moy]                                                          [Page 96]
  5376.  
  5377. Internet Draft        Multicast Extensions to OSPF            March 1993
  5378.  
  5379.  
  5380. C.1 An intra-area tree
  5381.  
  5382.     The datagram shortest-path tree resulting from the  intra-area  case
  5383.     is  shown  on  the  right  of Figure 14. The root of the tree is the
  5384.     source network (192.9.1.0), and the leaves are the two routers  (RT4
  5385.     and  RT3) directly attached to the stub networks containing Group Ma
  5386.     members.
  5387.  
  5388.     There are equal-cost paths available to both group members. For  the
  5389.     group  member  on the left, the path could go either through network
  5390.     10.1.0.0 or through network 10.2.0.0. By the tie-breaking rules, the
  5391.     path  through  10.2.0.0 is chosen since it has the larger IP network
  5392.     number (see Step 5c of Section 12.2).
  5393.  
  5394.     For the group member on the right, the path  could  go  either  over
  5395.     Network  10.2.0.0 or over the serial line connecting routers RT2 and
  5396.     RT3. The path over Network 10.2.0.0 is chosen  after  executing  two
  5397.     tie-breaking  rules.  First,  Network  10.2.0.0  is  placed  on  the
  5398.     shortest-path tree before  Router  RT3  since  networks  are  always
  5399.     chosen  over  routers  (see  Step  4 of Section 12.2). Then, given a
  5400.  
  5401.                                  +--+
  5402.                                  |H1|
  5403.                                  +--+
  5404.                     Net 192.9.1.0  |
  5405.                          +------------------+
  5406.                             |            |
  5407.         +----------+        |1           |1
  5408.         |  Network |     8+---+        +---+            o 192.9.1.0
  5409.         | 10.1.0.0 |------|RT1|        |RT2|            |
  5410.         +----------+      +---+        +---+           0|
  5411.              |              |8          8|              |
  5412.             8|         +----------+      |8             o RT1
  5413.            +---+10     | Network  |  10+---+            |
  5414.            |RT4|-------| 10.2.0.0 |----|RT3|           8|
  5415.            +---+       +----------+    +---+            |
  5416.              |3                          |3             o 10.2.0.0
  5417.              |                           |             / \
  5418.         +---------+                  +-------+       0/   \0
  5419.              |                           |           /     \
  5420.            +--+                        +--+         o       o
  5421.            |Ma|                        |Ma|        RT4      RT3
  5422.            +--+                        +--+
  5423.  
  5424.  
  5425.                         Figure 14: An intra-area tree
  5426.  
  5427.  
  5428.  
  5429.  
  5430.  
  5431. [Moy]                                                          [Page 97]
  5432.  
  5433. Internet Draft        Multicast Extensions to OSPF            March 1993
  5434.  
  5435.  
  5436.     choice of either Network 10.2.0.0 or Router RT2 for RT3's parent  on
  5437.     the tree, Net 10.2.0.0 is again preferred since it is a network (see
  5438.     Step 5c of Section 12.2)
  5439.  
  5440.  
  5441.  
  5442.  
  5443.  
  5444.  
  5445.  
  5446.  
  5447.  
  5448.  
  5449.  
  5450.  
  5451.  
  5452.  
  5453.  
  5454.  
  5455.  
  5456.  
  5457.  
  5458.  
  5459.  
  5460.  
  5461.  
  5462.  
  5463.  
  5464.  
  5465.  
  5466.  
  5467.  
  5468.  
  5469.  
  5470.  
  5471.  
  5472.  
  5473.  
  5474.  
  5475.  
  5476.  
  5477.  
  5478.  
  5479.  
  5480.  
  5481.  
  5482.  
  5483.  
  5484.  
  5485.  
  5486.  
  5487. [Moy]                                                          [Page 98]
  5488.  
  5489. Internet Draft        Multicast Extensions to OSPF            March 1993
  5490.  
  5491.  
  5492. C.2 The effect of areas
  5493.  
  5494.     In Figure 15 below, the previous diagram has been  modified  by  the
  5495.     inclusion of OSPF areas. The datagram source is now part of the OSPF
  5496.     backbone (Area 0), while the rest of the topology is in Area  1.  In
  5497.     this case, since the datagram source and the group members belong to
  5498.     different areas, reverse costs are used when building the tree  (see
  5499.     Step  5b  of  Section 12.2). This actually eliminates the equal cost
  5500.     paths from the diagram, and leads to the Area 1  datagram  shortest-
  5501.     path tree on the right of Figure 15.
  5502.  
  5503.  
  5504.  
  5505.  
  5506.  
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512.  
  5513.                                  +--+
  5514.                                  |H1|
  5515.                                  +--+
  5516.                     Net 192.9.1.0  |
  5517.                          +------------------+
  5518.       ..................... |            |
  5519.       . +----------+      . |1           |1            192.9.1.0
  5520.       . |  Network |     8+---+        +---+                o
  5521.       . | 10.1.0.0 |------|RT1|........|RT2|...            / \
  5522.       . +----------+      +---+        +---+  .          1/   \1
  5523.       .      |              |8          8|    .          /     \
  5524.       .     8|         +----------+      |8   .         o RT1   o RT2
  5525.       .    +---+10     | Network  |  10+---+  .         |        \
  5526.       .    |RT4|-------| 10.2.0.0 |----|RT3|  .        0|         \8
  5527.       .    +---+       +----------+    +---+  .         |          \
  5528.       .      |3                          |3   .         o 10.1.0.0  o
  5529.       .      |                           |    .         |          RT3
  5530.       . +---------+                  +-------+.        8|
  5531.       .      |                           |    .         |
  5532.       .    +--+                        +--+   .         o
  5533.       .    |Ma|                        |Ma|   .        RT4
  5534.       .    +--+     Area 1             +--+   .
  5535.       .........................................
  5536.  
  5537.                         Figure 15: The effect of areas
  5538.  
  5539.  
  5540.  
  5541.  
  5542.  
  5543. [Moy]                                                          [Page 99]
  5544.  
  5545. Internet Draft        Multicast Extensions to OSPF            March 1993
  5546.  
  5547.  
  5548. C.3 The effect of virtual links
  5549.  
  5550.     In Figure 16 below,  Network  10.1.0.0  has  been  configured  as  a
  5551.     separate  area  (Area  1), while everything else belongs to the OSPF
  5552.     backbone (Area 0). In addition, a virtual link has  been  configured
  5553.     through  Area  1, enhancing the backbone connectivity. In this case,
  5554.     both the source and the group members belong to the  same  area,  so
  5555.     forward  costs  are used. However, since virtual links are preferred
  5556.     over regular links (see Step  5c  of  Section  12.2),  the  backbone
  5557.     datagram   shortest-path  tree  uses  Network  10.1.0.0  instead  of
  5558.     10.2.0.0 on the path to the left group member.  This  leads  to  the
  5559.     tree on the right of Figure 16.
  5560.  
  5561.  
  5562.  
  5563.  
  5564.  
  5565.  
  5566.  
  5567.  
  5568.  
  5569.                                  +--+
  5570.                                  |H1|
  5571.                                  +--+
  5572.                     Net 192.9.1.0  |
  5573.       ................   +------------------+
  5574.       . +----------+ .     /1            |
  5575.       . |  Network |8.    /              |1
  5576.       . | 10.1.0.0 |-+---+             +---+            o 192.9.1.0
  5577.       . +----------+*|RT1|             |RT2|            |
  5578.       .     8|*******+---+             +---+           0|
  5579.       .Area1 |*VL    .    \8            8|              |
  5580.       .....+---+...... +----------+      |8             o RT1
  5581.            |RT4|10     | Network  |  10+---+           / \
  5582.            +---+-------| 10.2.0.0 |----|RT3|          /8  \8
  5583.              |         +----------+    +---+         /     \
  5584.              |3                          |3         o 10.1  o 10.2.0.0
  5585.              |                           |          |       |
  5586.         +---------+                  +-------+      |0      |0
  5587.              |                           |          |       |
  5588.            +--+                        +--+         o       o
  5589.            |Ma|                        |Ma|        RT4      RT3
  5590.            +--+                        +--+
  5591.  
  5592.  
  5593.                    Figure 16: The effect of virtual links
  5594.  
  5595.  
  5596.  
  5597.  
  5598.  
  5599. [Moy]                                                         [Page 100]
  5600.  
  5601. Internet Draft        Multicast Extensions to OSPF            March 1993
  5602.  
  5603.  
  5604. Security Considerations
  5605.  
  5606.     Security issues are not discussed in this memo.
  5607.  
  5608. Author's Address
  5609.  
  5610.     John Moy
  5611.     Proteon, Inc.
  5612.     9 Technology Drive
  5613.     Westborough, MA 01581
  5614.     Phone: (508) 898-2800
  5615.     Email: jmoy@proteon.com
  5616.  
  5617.     This document expires in September 1993.
  5618.  
  5619.  
  5620.  
  5621.  
  5622.  
  5623.  
  5624.  
  5625.  
  5626.  
  5627.  
  5628.  
  5629.  
  5630.  
  5631.  
  5632.  
  5633.  
  5634.  
  5635.  
  5636.  
  5637.  
  5638.  
  5639.  
  5640.  
  5641.  
  5642.  
  5643.  
  5644.  
  5645.  
  5646.  
  5647.  
  5648.  
  5649.  
  5650.  
  5651.  
  5652.  
  5653.  
  5654.  
  5655. [Moy]                                                         [Page 101]
  5656.  
  5657.